@@ -85,15 +85,22 @@ Js::DynamicObject * JsrtDebuggerObjectBase::GetChildren(WeakArenaReference<Js::I
85
85
if (resolvedObjectDisplay != nullptr )
86
86
{
87
87
JsrtDebuggerObjectBase* debuggerObject = JsrtDebuggerObjectProperty::Make (this ->GetDebuggerObjectsManager (), objectDisplayWeakRef);
88
- Js::DynamicObject* object = debuggerObject->GetJSONObject (resolvedObject.scriptContext , /* forceSetValueProp */ false );
89
- Js::Var marshaledObj = Js::CrossSite::MarshalVar (scriptContext, object);
90
- if (resolvedObjectDisplay->IsFake ())
88
+ try
91
89
{
92
- Js::JavascriptOperators::OP_SetElementI ((Js::Var)debuggerOnlyPropertiesArray, Js::JavascriptNumber::ToVar (debuggerOnlyPropertiesArrayCount++, scriptContext), marshaledObj, scriptContext);
90
+ Js::DynamicObject* object = debuggerObject->GetJSONObject (resolvedObject.scriptContext , /* forceSetValueProp */ false );
91
+ Js::Var marshaledObj = Js::CrossSite::MarshalVar (scriptContext, object);
92
+ if (resolvedObjectDisplay->IsFake ())
93
+ {
94
+ Js::JavascriptOperators::OP_SetElementI ((Js::Var)debuggerOnlyPropertiesArray, Js::JavascriptNumber::ToVar (debuggerOnlyPropertiesArrayCount++, scriptContext), marshaledObj, scriptContext);
95
+ }
96
+ else
97
+ {
98
+ Js::JavascriptOperators::OP_SetElementI ((Js::Var)propertiesArray, Js::JavascriptNumber::ToVar (propertiesArrayCount++, scriptContext), marshaledObj, scriptContext);
99
+ }
93
100
}
94
- else
101
+ catch ( const Js::JavascriptException& err)
95
102
{
96
- Js::JavascriptOperators::OP_SetElementI ((Js::Var)propertiesArray, Js::JavascriptNumber::ToVar (propertiesArrayCount++, scriptContext), marshaledObj, scriptContext);
103
+ err. GetAndClear (); // discard exception object
97
104
}
98
105
objectDisplayWeakRef->ReleaseStrongReference ();
99
106
objectDisplayWeakRef.Detach ();
@@ -415,11 +422,18 @@ Js::DynamicObject * JsrtDebuggerStackFrame::GetLocalsObject(Js::ScriptContext* s
415
422
{
416
423
AutoPtr<WeakArenaReference<Js::IDiagObjectModelDisplay>> objectDisplayWeakRef (resolvedObject.GetObjectDisplay ());
417
424
JsrtDebuggerObjectBase* debuggerObject = JsrtDebuggerObjectScope::Make (debuggerObjectsManager, objectDisplayWeakRef, scopesCount);
418
- Js::DynamicObject* object = debuggerObject->GetJSONObject (resolvedObject.scriptContext , /* forceSetValueProp */ false );
419
- Assert (object != nullptr );
420
- Js::Var marshaledObj = Js::CrossSite::MarshalVar (scriptContext, object);
421
- Js::JavascriptOperators::OP_SetElementI ((Js::Var)scopesArray, Js::JavascriptNumber::ToVar (scopesCount, scriptContext), marshaledObj, scriptContext);
422
- scopesCount++;
425
+ try
426
+ {
427
+ Js::DynamicObject* object = debuggerObject->GetJSONObject (resolvedObject.scriptContext , /* forceSetValueProp */ false );
428
+ Assert (object != nullptr );
429
+ Js::Var marshaledObj = Js::CrossSite::MarshalVar (scriptContext, object);
430
+ Js::JavascriptOperators::OP_SetElementI ((Js::Var)scopesArray, Js::JavascriptNumber::ToVar (scopesCount, scriptContext), marshaledObj, scriptContext);
431
+ scopesCount++;
432
+ }
433
+ catch (const Js::JavascriptException& err)
434
+ {
435
+ err.GetAndClear (); // discard exception object
436
+ }
423
437
objectDisplayWeakRef.Detach ();
424
438
}
425
439
}
0 commit comments