Index: src/accessors.cc |
diff --git a/src/accessors.cc b/src/accessors.cc |
index 1e8abd95ab6adc13d11d904826847e533fe8a559..0366895bfc332dc9949c25b22eaa982612b3b1b7 100644 |
--- a/src/accessors.cc |
+++ b/src/accessors.cc |
@@ -136,6 +136,12 @@ bool SetPropertyOnInstanceIfInherited( |
// This behaves sloppy since we lost the actual strict-mode. |
// TODO(verwaest): Fix by making ExecutableAccessorInfo behave like data |
// properties. |
+ if (object->IsJSGlobalProxy()) { |
+ PrototypeIterator iter(isolate, object); |
+ if (iter.IsAtEnd()) return true; |
+ DCHECK(PrototypeIterator::GetCurrent(iter)->IsJSGlobalObject()); |
+ object = Handle<JSObject>::cast(PrototypeIterator::GetCurrent(iter)); |
+ } |
if (!object->map()->is_extensible()) return true; |
JSObject::SetOwnPropertyIgnoreAttributes(object, Utils::OpenHandle(*name), |
value, NONE).Check(); |