diff options
author | Fedor Indutny <fedor@indutny.com> | 2014-07-24 09:31:45 +0000 |
---|---|---|
committer | Fedor Indutny <fedor@indutny.com> | 2014-07-25 02:44:24 +0400 |
commit | 9a63a1d89b5a2a015eadd5ef5d7e42039858c5ae (patch) | |
tree | f482c72f870bb74987b982e69ebba0ac486f7fef /deps/v8/src | |
parent | 61ddad1314824ac32bb2eadd88c44df53ab4792c (diff) | |
download | node-9a63a1d89b5a2a015eadd5ef5d7e42039858c5ae.tar.gz |
deps: backport 60c316 from v8 trunk
Original commit message:
Extend the interceptor setter ASSERT to support the JSGlobalProxy case.
BUG=v8:3463
LOG=n
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/415973004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22589 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Signed-off-by: Fedor Indutny <fedor@indutny.com>
fix #7969
Diffstat (limited to 'deps/v8/src')
-rw-r--r-- | deps/v8/src/stub-cache.cc | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/deps/v8/src/stub-cache.cc b/deps/v8/src/stub-cache.cc index 6bf209bc0..ef9faefc8 100644 --- a/deps/v8/src/stub-cache.cc +++ b/deps/v8/src/stub-cache.cc @@ -633,7 +633,18 @@ RUNTIME_FUNCTION(StoreInterceptorProperty) { Handle<JSObject> receiver = args.at<JSObject>(0); Handle<Name> name = args.at<Name>(1); Handle<Object> value = args.at<Object>(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>(JSObject::cast(proto)); + } else { +#ifdef DEBUG + ASSERT(receiver->HasNamedInterceptor()); +#endif + } PropertyAttributes attr = NONE; Handle<Object> result; ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |