Index: src/runtime/runtime-debug.cc |
diff --git a/src/runtime/runtime-debug.cc b/src/runtime/runtime-debug.cc |
index 94c2992fc2965ac022244d902803ef59390d1ce9..b23499370ba7e0372d027f5da8ea97afa712d65f 100644 |
--- a/src/runtime/runtime-debug.cc |
+++ b/src/runtime/runtime-debug.cc |
@@ -235,10 +235,6 @@ MaybeHandle<JSArray> Runtime::GetInternalProperties(Isolate* isolate, |
result->set(2, *function); |
result->set(3, generator->function()); |
- Handle<String> receiver = |
- factory->NewStringFromAsciiChecked("[[GeneratorReceiver]]"); |
- result->set(4, *receiver); |
- result->set(5, generator->receiver()); |
return factory->NewJSArrayWithElements(result); |
} else if (Object::IsPromise(object)) { |
Handle<JSObject> promise = Handle<JSObject>::cast(object); |
@@ -695,7 +691,14 @@ RUNTIME_FUNCTION(Runtime_GetFrameDetails) { |
// Add the receiver (same as in function frame). |
Handle<Object> receiver(it.frame()->receiver(), isolate); |
DCHECK(!function->shared()->IsBuiltin()); |
- DCHECK_IMPLIES(is_sloppy(shared->language_mode()), receiver->IsJSReceiver()); |
+ DCHECK_IMPLIES( |
+ is_sloppy(shared->language_mode()), |
+ receiver->IsJSReceiver() || |
+ // If this frame is a resumed generator, the receiver may be the hole, |
+ // but |
+ // it will not be observed as such due to forced context allocation. |
+ (*receiver == isolate->heap()->the_hole_value() && |
+ function->shared()->is_generator())); |
details->set(kFrameDetailsReceiverIndex, *receiver); |
DCHECK_EQ(details_size, details_index); |