Index: src/runtime.cc |
diff --git a/src/runtime.cc b/src/runtime.cc |
index 2a58b071a2353a6a114ffdb34ab1b64aef8c00b4..16164342a9a11ece230d99afc1842009c1f2d0a0 100644 |
--- a/src/runtime.cc |
+++ b/src/runtime.cc |
@@ -11500,11 +11500,13 @@ RUNTIME_FUNCTION(Runtime_GetFrameDetails) { |
if (receiver->IsUndefined()) { |
receiver = handle(function->global_proxy()); |
} else { |
- DCHECK(!receiver->IsNull()); |
Context* context = Context::cast(it.frame()->context()); |
Handle<Context> native_context(Context::cast(context->native_context())); |
- receiver = Object::ToObject( |
- isolate, receiver, native_context).ToHandleChecked(); |
+ if (!Object::ToObject(isolate, receiver, native_context) |
+ .ToHandle(&receiver)) { |
+ // This only happens if the receiver is forcibly set in %_CallFunction. |
+ return heap->undefined_value(); |
+ } |
} |
} |
details->set(kFrameDetailsReceiverIndex, *receiver); |