trap-is-null-receiver.js (731B)
1 // Copyright (C) 2016 Aleksey Shvayka. All rights reserved. 2 // This code is governed by the BSD license found in the LICENSE file. 3 /*--- 4 esid: sec-proxy-object-internal-methods-and-internal-slots-set-p-v-receiver 5 description: > 6 Pass to target's [[Set]] correct receiver if trap is missing 7 info: | 8 [[Set]] (P, V, Receiver) 9 10 7. If trap is undefined, then 11 a. Return ? target.[[Set]](P, V, Receiver). 12 features: [Proxy] 13 ---*/ 14 15 var context; 16 var target = { 17 set attr(val) { 18 context = this; 19 } 20 }; 21 22 var p = new Proxy(target, { 23 set: null 24 }); 25 p.attr = 1; 26 assert.sameValue(context, p); 27 28 var pParent = Object.create(new Proxy(target, {})); 29 pParent.attr = 3; 30 assert.sameValue(context, pParent); 31 32 reportCompare(0, 0);