diff --git a/deps/v8/src/stub-cache.cc b/deps/v8/src/stub-cache.cc index 6bf209bc0aa..ef9faefc83b 100644 --- a/deps/v8/src/stub-cache.cc +++ b/deps/v8/src/stub-cache.cc @@ -633,7 +633,18 @@ RUNTIME_FUNCTION(StoreInterceptorProperty) { Handle receiver = args.at(0); Handle name = args.at(1); Handle value = args.at(2); - ASSERT(receiver->HasNamedInterceptor()); + if (receiver->IsJSGlobalProxy()) { + Object* proto = Object::cast(*receiver)->GetPrototype(isolate); +#ifdef DEBUG + ASSERT(proto == NULL || + JSGlobalObject::cast(proto)->HasNamedInterceptor()); +#endif + receiver = Handle(JSObject::cast(proto)); + } else { +#ifdef DEBUG + ASSERT(receiver->HasNamedInterceptor()); +#endif + } PropertyAttributes attr = NONE; Handle result; ASSIGN_RETURN_FAILURE_ON_EXCEPTION(