Object-getProperty-non-primitive-key.js (758B)
1 var g = newGlobal({newCompartment: true}); 2 var dbg = new Debugger(g); 3 var gw = dbg.addDebuggee(g); 4 5 g.eval(` 6 var obj = { 7 p: 1, 8 [Symbol.iterator]: 2, 9 }; 10 `); 11 12 // Return |key| as an object. 13 function toObject(key) { 14 return { 15 [Symbol.toPrimitive]() { 16 return key; 17 } 18 }; 19 } 20 21 let obj = gw.getProperty("obj").return; 22 23 for (let key of obj.getOwnPropertyNames()) { 24 let keyObject = toObject(key); 25 let value = g.obj[key]; 26 27 assertEq(obj.getProperty(key).return, value); 28 assertEq(obj.getProperty(keyObject).return, value); 29 } 30 31 for (let key of obj.getOwnPropertySymbols()) { 32 let keyObject = toObject(key); 33 let value = g.obj[key]; 34 35 assertEq(obj.getProperty(key).return, value); 36 assertEq(obj.getProperty(keyObject).return, value); 37 }