diff options
Diffstat (limited to 'deps/v8/src/runtime/runtime-debug.cc')
-rw-r--r-- | deps/v8/src/runtime/runtime-debug.cc | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/deps/v8/src/runtime/runtime-debug.cc b/deps/v8/src/runtime/runtime-debug.cc index 671a995822..22bdd354f8 100644 --- a/deps/v8/src/runtime/runtime-debug.cc +++ b/deps/v8/src/runtime/runtime-debug.cc @@ -48,7 +48,7 @@ RUNTIME_FUNCTION_RETURN_PAIR(Runtime_DebugBreakOnBytecode) { isolate->debug()->set_return_value(*value); // Get the top-most JavaScript frame. - JavaScriptFrameIterator it(isolate); + JavaScriptStackFrameIterator it(isolate); if (isolate->debug_execution_mode() == DebugInfo::kBreakpoints) { isolate->debug()->Break(it.frame(), handle(it.frame()->function(), isolate)); @@ -119,7 +119,7 @@ RUNTIME_FUNCTION(Runtime_DebugBreakAtEntry) { DCHECK(function->shared().GetDebugInfo().BreakAtEntry()); // Get the top-most JavaScript frame. This is the debug target function. - JavaScriptFrameIterator it(isolate); + JavaScriptStackFrameIterator it(isolate); DCHECK_EQ(*function, it.frame()->function()); // Check whether the next JS frame is closer than the last API entry. // if yes, then the call to the debug target came from JavaScript. Otherwise, @@ -208,6 +208,12 @@ MaybeHandle<JSArray> Runtime::GetInternalProperties(Isolate* isolate, if (iter.HasAccess()) { iter.Advance(); Handle<Object> prototype = PrototypeIterator::GetCurrent(iter); + if (!iter.IsAtEnd() && iter.HasAccess() && object->IsJSGlobalProxy()) { + // Skip JSGlobalObject as the [[Prototype]]. + DCHECK(prototype->IsJSGlobalObject()); + iter.Advance(); + prototype = PrototypeIterator::GetCurrent(iter); + } if (!prototype->IsNull(isolate)) { result = ArrayList::Add( isolate, result, @@ -905,6 +911,9 @@ RUNTIME_FUNCTION(Runtime_LiveEditPatchScript) { case v8::debug::LiveEditResult::BLOCKED_BY_ACTIVE_FUNCTION: return isolate->Throw(*isolate->factory()->NewStringFromAsciiChecked( "LiveEdit failed: BLOCKED_BY_ACTIVE_FUNCTION")); + case v8::debug::LiveEditResult::BLOCKED_BY_TOP_LEVEL_ES_MODULE_CHANGE: + return isolate->Throw(*isolate->factory()->NewStringFromAsciiChecked( + "LiveEdit failed: BLOCKED_BY_TOP_LEVEL_ES_MODULE_CHANGE")); case v8::debug::LiveEditResult::OK: return ReadOnlyRoots(isolate).undefined_value(); } |