tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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 }