summaryrefslogtreecommitdiff
path: root/deps/v8/src/runtime/runtime-debug.cc
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/runtime/runtime-debug.cc')
-rw-r--r--deps/v8/src/runtime/runtime-debug.cc13
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();
}