File tree Expand file tree Collapse file tree 2 files changed +33
-9
lines changed Expand file tree Collapse file tree 2 files changed +33
-9
lines changed Original file line number Diff line number Diff line change @@ -449,16 +449,8 @@ void ContextifyContext::PropertySetterCallback(
449449 !is_function)
450450 return ;
451451
452- if (!is_declared_on_global_proxy && is_declared_on_sandbox &&
453- args.ShouldThrowOnError () && is_contextual_store && !is_function) {
454- // The property exists on the sandbox but not on the global
455- // proxy. Setting it would throw because we are in strict mode.
456- // Don't attempt to set it by signaling that the call was
457- // intercepted. Only change the value on the sandbox.
458- args.GetReturnValue ().Set (false );
459- }
460-
461452 USE (ctx->sandbox ()->Set (context, property, value));
453+ args.GetReturnValue ().Set (value);
462454}
463455
464456// static
Original file line number Diff line number Diff line change 1+ 'use strict' ;
2+ const common = require ( '../common' ) ;
3+ const assert = require ( 'assert' ) ;
4+ const vm = require ( 'vm' ) ;
5+
6+ const window = createWindow ( ) ;
7+
8+ const descriptor =
9+ Object . getOwnPropertyDescriptor ( window . globalProxy , 'onhashchange' ) ;
10+
11+ assert . strictEqual ( typeof descriptor . get , 'function' ) ;
12+ assert . strictEqual ( typeof descriptor . set , 'function' ) ;
13+ assert . strictEqual ( descriptor . configurable , true ) ;
14+
15+ // Regression test for GH-42962. This assignment should not throw.
16+ window . globalProxy . onhashchange = ( ) => { } ;
17+
18+ assert . strictEqual ( window . globalProxy . onhashchange , 42 ) ;
19+
20+ function createWindow ( ) {
21+ const obj = { } ;
22+ vm . createContext ( obj ) ;
23+ Object . defineProperty ( obj , 'onhashchange' , {
24+ get : common . mustCall ( ( ) => 42 ) ,
25+ set : common . mustCall ( ) ,
26+ configurable : true
27+ } ) ;
28+
29+ obj . globalProxy = vm . runInContext ( 'this' , obj ) ;
30+
31+ return obj ;
32+ }
You can’t perform that action at this time.
0 commit comments