Index: src/runtime.cc |
diff --git a/src/runtime.cc b/src/runtime.cc |
index 2a473e437179b5518c6a9dc8627d5bf37e668aba..6e045608b9c10d19178a4ee1f5308e9e2e214123 100644 |
--- a/src/runtime.cc |
+++ b/src/runtime.cc |
@@ -11061,7 +11061,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_GetFrameDetails) { |
Handle<Object> receiver(it.frame()->receiver(), isolate); |
if (!receiver->IsJSObject() && |
shared->is_classic_mode() && |
- !shared->native()) { |
+ !function->IsBuiltin()) { |
// If the receiver is not a JSObject and the function is not a |
// builtin or strict-mode we have hit an optimization where a |
// value object is not converted into a wrapped JS objects. To |
@@ -11071,6 +11071,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_GetFrameDetails) { |
it.Advance(); |
Handle<Context> calling_frames_native_context( |
Context::cast(Context::cast(it.frame()->context())->native_context())); |
+ ASSERT(!receiver->IsUndefined() && !receiver->IsNull()); |
receiver = |
isolate->factory()->ToObject(receiver, calling_frames_native_context); |
} |