| Index: src/deoptimizer.cc
|
| diff --git a/src/deoptimizer.cc b/src/deoptimizer.cc
|
| index a730b48d2e8c41c26c8346637f21cf2d7d21d4ff..d8dff9de818b1d7b2b7e69dbe154b050cd420122 100644
|
| --- a/src/deoptimizer.cc
|
| +++ b/src/deoptimizer.cc
|
| @@ -459,9 +459,11 @@ void Deoptimizer::DeoptimizeGlobalObject(JSObject* object) {
|
| reinterpret_cast<intptr_t>(object));
|
| }
|
| if (object->IsJSGlobalProxy()) {
|
| - Object* proto = object->GetPrototype();
|
| - CHECK(proto->IsJSGlobalObject());
|
| - Context* native_context = GlobalObject::cast(proto)->native_context();
|
| + PrototypeIterator iter(object->GetIsolate(), object);
|
| + // TODO(verwaest): This CHECK will be hit if the global proxy is detached.
|
| + CHECK(iter.GetCurrent()->IsJSGlobalObject());
|
| + Context* native_context =
|
| + GlobalObject::cast(iter.GetCurrent())->native_context();
|
| MarkAllCodeForContext(native_context);
|
| DeoptimizeMarkedCodeForContext(native_context);
|
| } else if (object->IsGlobalObject()) {
|
|
|