call-parameters-object-getownpropertysymbols.js (889B)
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 esid: sec-proxy-object-internal-methods-and-internal-slots-ownpropertykeys 5 description: > 6 [[OwnPropertyKeys]] ( ) 7 8 7. Let trapResultArray be ? Call(trap, handler, « target »). 9 10 features: [Proxy, Symbol] 11 ---*/ 12 13 var _target, _handler; 14 var target = {}; 15 var a = Symbol('a'); 16 var b = Symbol('b'); 17 18 target[a] = 1; 19 target[b] = 2; 20 21 var handler = { 22 ownKeys: function(t) { 23 _handler = this; 24 _target = t; 25 return Object.getOwnPropertySymbols(t); 26 } 27 } 28 var p = new Proxy(target, handler); 29 30 var symbols = Object.getOwnPropertySymbols(p); 31 32 assert.sameValue(symbols[0], a); 33 assert.sameValue(symbols[1], b); 34 assert.sameValue(symbols.length, 2); 35 assert.sameValue(_handler, handler); 36 assert.sameValue(_target, target); 37 38 reportCompare(0, 0);