call-parameters.js (1258B)
1 // Copyright (C) 2015 the V8 project authors. All rights reserved. 2 // This code is governed by the BSD license found in the LICENSE file. 3 /*--- 4 es6id: 9.5.6 5 description: > 6 Trap is called with handler as context and parameters are target, P, and the 7 descriptor object. 8 info: | 9 [[DefineOwnProperty]] (P, Desc) 10 11 ... 12 9. Let descObj be FromPropertyDescriptor(Desc). 13 10. Let booleanTrapResult be ToBoolean(Call(trap, handler, «target, P, 14 descObj»)). 15 ... 16 features: [Proxy] 17 ---*/ 18 19 var _handler, _target, _prop, _desc; 20 var target = {}; 21 var descriptor = { 22 configurable: true, 23 enumerable: true, 24 writable: true, 25 value: 1 26 }; 27 var handler = { 28 defineProperty: function(t, prop, desc) { 29 _handler = this; 30 _target = t; 31 _prop = prop; 32 _desc = desc; 33 34 return true; 35 } 36 }; 37 var p = new Proxy(target, handler); 38 39 Object.defineProperty(p, "attr", descriptor); 40 41 assert.sameValue(_handler, handler); 42 assert.sameValue(_target, target); 43 assert.sameValue(_prop, "attr"); 44 45 assert.sameValue( 46 Object.keys(_desc).length, 4, 47 "descriptor arg has the same amount of keys as given descriptor" 48 ); 49 50 assert(_desc.configurable); 51 assert(_desc.writable); 52 assert(_desc.enumerable); 53 assert.sameValue(_desc.value, 1); 54 55 reportCompare(0, 0);