@@ -84,7 +84,7 @@ Js::DynamicObject * JsrtDebuggerObjectBase::GetChildren(WeakArenaReference<Js::I
8484 if (resolvedObjectDisplay != nullptr )
8585 {
8686 JsrtDebuggerObjectBase* debuggerObject = JsrtDebuggerObjectProperty::Make (this ->GetDebuggerObjectsManager (), objectDisplayWeakRef);
87- Js::DynamicObject* object = debuggerObject->GetJSONObject (resolvedObject.scriptContext );
87+ Js::DynamicObject* object = debuggerObject->GetJSONObject (resolvedObject.scriptContext , /* forceSetValueProp */ false );
8888 Js::Var marshaledObj = Js::CrossSite::MarshalVar (scriptContext, object);
8989 if (resolvedObjectDisplay->IsFake ())
9090 {
@@ -314,7 +314,7 @@ Js::DynamicObject * JsrtDebuggerStackFrame::GetLocalsObject(Js::ScriptContext* s
314314 thisResolvedObject.scriptContext = scriptContext;
315315 thisResolvedObject.name = _u (" this" );
316316 thisResolvedObject.typeId = Js::JavascriptOperators::GetTypeId (thisResolvedObject.obj );
317- JsrtDebuggerObjectBase::CreateDebuggerObject<JsrtDebuggerObjectProperty>(this ->debuggerObjectsManager , thisResolvedObject, this ->stackFrame ->GetScriptContext (), [&](Js::Var marshaledObj)
317+ JsrtDebuggerObjectBase::CreateDebuggerObject<JsrtDebuggerObjectProperty>(this ->debuggerObjectsManager , thisResolvedObject, this ->stackFrame ->GetScriptContext (), false , [&](Js::Var marshaledObj)
318318 {
319319 JsrtDebugUtils::AddPropertyToObject (propertiesObject, JsrtDebugPropertyId::thisObject, marshaledObj, scriptContext);
320320 });
@@ -330,7 +330,7 @@ Js::DynamicObject * JsrtDebuggerStackFrame::GetLocalsObject(Js::ScriptContext* s
330330 // If we have a exception add 'exception'
331331 if (Js::VariableWalkerBase::GetExceptionObject (index, this ->stackFrame , &resolvedObject))
332332 {
333- JsrtDebuggerObjectBase::CreateDebuggerObject<JsrtDebuggerObjectProperty>(this ->debuggerObjectsManager , resolvedObject, scriptContext, [&](Js::Var marshaledObj)
333+ JsrtDebuggerObjectBase::CreateDebuggerObject<JsrtDebuggerObjectProperty>(this ->debuggerObjectsManager , resolvedObject, scriptContext, false , [&](Js::Var marshaledObj)
334334 {
335335 JsrtDebugUtils::AddPropertyToObject (propertiesObject, JsrtDebugPropertyId::exception, marshaledObj, scriptContext);
336336 });
@@ -339,7 +339,7 @@ Js::DynamicObject * JsrtDebuggerStackFrame::GetLocalsObject(Js::ScriptContext* s
339339 // If user have not explicitly defined 'arguments' add 'arguments'
340340 if (localsWalker->HasUserNotDefinedArguments () && localsWalker->CreateArgumentsObject (&resolvedObject))
341341 {
342- JsrtDebuggerObjectBase::CreateDebuggerObject<JsrtDebuggerObjectProperty>(this ->debuggerObjectsManager , resolvedObject, scriptContext, [&](Js::Var marshaledObj)
342+ JsrtDebuggerObjectBase::CreateDebuggerObject<JsrtDebuggerObjectProperty>(this ->debuggerObjectsManager , resolvedObject, scriptContext, false , [&](Js::Var marshaledObj)
343343 {
344344 JsrtDebugUtils::AddPropertyToObject (propertiesObject, JsrtDebugPropertyId::arguments, marshaledObj, scriptContext);
345345 });
@@ -355,7 +355,7 @@ Js::DynamicObject * JsrtDebuggerStackFrame::GetLocalsObject(Js::ScriptContext* s
355355 Js::ReturnedValue * returnValue = returnedValueList->Item (i);
356356 Js::VariableWalkerBase::GetReturnedValueResolvedObject (returnValue, this ->stackFrame , &resolvedObject);
357357
358- JsrtDebuggerObjectBase::CreateDebuggerObject<JsrtDebuggerObjectProperty>(debuggerObjectsManager, resolvedObject, scriptContext, [&](Js::Var marshaledObj)
358+ JsrtDebuggerObjectBase::CreateDebuggerObject<JsrtDebuggerObjectProperty>(debuggerObjectsManager, resolvedObject, scriptContext, false , [&](Js::Var marshaledObj)
359359 {
360360
361361 if (returnValue->isValueOfReturnStatement )
@@ -390,7 +390,7 @@ Js::DynamicObject * JsrtDebuggerStackFrame::GetLocalsObject(Js::ScriptContext* s
390390 break ;
391391 }
392392
393- JsrtDebuggerObjectBase::CreateDebuggerObject<JsrtDebuggerObjectProperty>(debuggerObjectsManager, resolvedObject, scriptContext, [&](Js::Var marshaledObj)
393+ JsrtDebuggerObjectBase::CreateDebuggerObject<JsrtDebuggerObjectProperty>(debuggerObjectsManager, resolvedObject, scriptContext, false , [&](Js::Var marshaledObj)
394394 {
395395 Js::JavascriptOperators::OP_SetElementI ((Js::Var)localsArray, Js::JavascriptNumber::ToVar (totalLocalsCount, scriptContext), marshaledObj, scriptContext);
396396 totalLocalsCount++;
@@ -407,7 +407,7 @@ Js::DynamicObject * JsrtDebuggerStackFrame::GetLocalsObject(Js::ScriptContext* s
407407 {
408408 AutoPtr<WeakArenaReference<Js::IDiagObjectModelDisplay>> objectDisplayWeakRef (resolvedObject.GetObjectDisplay ());
409409 JsrtDebuggerObjectBase* debuggerObject = JsrtDebuggerObjectScope::Make (debuggerObjectsManager, objectDisplayWeakRef, scopesCount);
410- Js::DynamicObject* object = debuggerObject->GetJSONObject (resolvedObject.scriptContext );
410+ Js::DynamicObject* object = debuggerObject->GetJSONObject (resolvedObject.scriptContext , /* forceSetValueProp */ false );
411411 Assert (object != nullptr );
412412 Js::Var marshaledObj = Js::CrossSite::MarshalVar (scriptContext, object);
413413 Js::JavascriptOperators::OP_SetElementI ((Js::Var)scopesArray, Js::JavascriptNumber::ToVar (scopesCount, scriptContext), marshaledObj, scriptContext);
@@ -419,7 +419,7 @@ Js::DynamicObject * JsrtDebuggerStackFrame::GetLocalsObject(Js::ScriptContext* s
419419 // Add globals handle
420420 if (localsWalker->GetGlobalsObject (&resolvedObject))
421421 {
422- JsrtDebuggerObjectBase::CreateDebuggerObject<JsrtDebuggerObjectGlobalsNode>(this ->debuggerObjectsManager , resolvedObject, scriptContext, [&](Js::Var marshaledObj)
422+ JsrtDebuggerObjectBase::CreateDebuggerObject<JsrtDebuggerObjectGlobalsNode>(this ->debuggerObjectsManager , resolvedObject, scriptContext, false , [&](Js::Var marshaledObj)
423423 {
424424 globalsObject = (Js::DynamicObject*)marshaledObj;
425425 });
@@ -446,7 +446,7 @@ Js::DynamicObject * JsrtDebuggerStackFrame::GetLocalsObject(Js::ScriptContext* s
446446 return propertiesObject;
447447}
448448
449- bool JsrtDebuggerStackFrame::Evaluate (Js::ScriptContext* scriptContext, const char16 *source, int sourceLength, bool isLibraryCode, Js::DynamicObject** evalResult)
449+ bool JsrtDebuggerStackFrame::Evaluate (Js::ScriptContext* scriptContext, const char16 *source, int sourceLength, bool isLibraryCode, bool forceSetValueProp, Js::DynamicObject** evalResult)
450450{
451451 *evalResult = nullptr ;
452452 bool success = false ;
@@ -504,7 +504,7 @@ bool JsrtDebuggerStackFrame::Evaluate(Js::ScriptContext* scriptContext, const ch
504504 }
505505
506506 resolvedObject.typeId = Js::JavascriptOperators::GetTypeId (resolvedObject.obj );
507- JsrtDebuggerObjectBase::CreateDebuggerObject<JsrtDebuggerObjectProperty>(this ->debuggerObjectsManager , resolvedObject, scriptContext, [&](Js::Var marshaledObj)
507+ JsrtDebuggerObjectBase::CreateDebuggerObject<JsrtDebuggerObjectProperty>(this ->debuggerObjectsManager , resolvedObject, scriptContext, forceSetValueProp, [&](Js::Var marshaledObj)
508508 {
509509 *evalResult = (Js::DynamicObject*)marshaledObj;
510510 });
@@ -545,7 +545,7 @@ JsrtDebuggerObjectBase * JsrtDebuggerObjectProperty::Make(JsrtDebuggerObjectsMan
545545 return debuggerObject;
546546}
547547
548- Js::DynamicObject * JsrtDebuggerObjectProperty::GetJSONObject (Js::ScriptContext* scriptContext)
548+ Js::DynamicObject * JsrtDebuggerObjectProperty::GetJSONObject (Js::ScriptContext* scriptContext, bool forceSetValueProp )
549549{
550550 Js::IDiagObjectModelDisplay* objectDisplayRef = this ->objectDisplay ->GetStrongReference ();
551551
@@ -559,7 +559,7 @@ Js::DynamicObject * JsrtDebuggerObjectProperty::GetJSONObject(Js::ScriptContext*
559559
560560 JsrtDebugUtils::AddPropertyToObject (propertyObject, JsrtDebugPropertyId::name, name, wcslen (name), scriptContext);
561561
562- JsrtDebugUtils::AddPropertyType (propertyObject, objectDisplayRef, scriptContext); // Will add type, value, display, className, propertyAttributes
562+ JsrtDebugUtils::AddPropertyType (propertyObject, objectDisplayRef, scriptContext, forceSetValueProp ); // Will add type, value, display, className, propertyAttributes
563563
564564 JsrtDebugUtils::AddPropertyToObject (propertyObject, JsrtDebugPropertyId::handle, this ->GetHandle (), scriptContext);
565565
@@ -622,7 +622,7 @@ JsrtDebuggerObjectBase * JsrtDebuggerObjectScope::Make(JsrtDebuggerObjectsManage
622622 return debuggerObject;
623623}
624624
625- Js::DynamicObject * JsrtDebuggerObjectScope::GetJSONObject (Js::ScriptContext* scriptContext)
625+ Js::DynamicObject * JsrtDebuggerObjectScope::GetJSONObject (Js::ScriptContext* scriptContext, bool forceSetValueProp )
626626{
627627 Js::IDiagObjectModelDisplay* modelDisplay = this ->objectDisplay ->GetStrongReference ();
628628
@@ -688,7 +688,7 @@ JsrtDebuggerObjectBase * JsrtDebuggerObjectFunction::Make(JsrtDebuggerObjectsMan
688688 return debuggerObject;
689689}
690690
691- Js::DynamicObject * JsrtDebuggerObjectFunction::GetJSONObject (Js::ScriptContext * scriptContext)
691+ Js::DynamicObject * JsrtDebuggerObjectFunction::GetJSONObject (Js::ScriptContext * scriptContext, bool forceSetValueProp )
692692{
693693 Js::DynamicObject* functionObject = scriptContext->GetLibrary ()->CreateObject ();
694694
@@ -734,7 +734,7 @@ JsrtDebuggerObjectBase * JsrtDebuggerObjectGlobalsNode::Make(JsrtDebuggerObjects
734734 return debuggerObject;
735735}
736736
737- Js::DynamicObject * JsrtDebuggerObjectGlobalsNode::GetJSONObject (Js::ScriptContext * scriptContext)
737+ Js::DynamicObject * JsrtDebuggerObjectGlobalsNode::GetJSONObject (Js::ScriptContext * scriptContext, bool forceSetValueProp )
738738{
739739 Js::IDiagObjectModelDisplay* objectDisplayRef = this ->objectDisplay ->GetStrongReference ();
740740
0 commit comments