tor-browser

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

Object-defineProperties-02.js (915B)


      1 // Exceptions thrown by obj.defineProperties are copied into the debugger compartment.
      2 
      3 var g = newGlobal({newCompartment: true});
      4 var dbg = new Debugger;
      5 var gw = dbg.addDebuggee(g);
      6 
      7 function test(objexpr, descs) {
      8    var exca, excb;
      9 
     10    g.eval("obj = (" + objexpr + ");");
     11    var gobjw = gw.getOwnPropertyDescriptor("obj").value;
     12    try {
     13        gobjw.defineProperties(descs);
     14    } catch (exc) {
     15        exca = exc;
     16    }
     17 
     18    var indirectEval = eval;
     19    var obj = indirectEval("(" + objexpr + ");");
     20    try {
     21        Object.defineProperties(obj, descs);
     22    } catch (exc) {
     23        excb = exc;
     24    }
     25 
     26    assertEq(Object.getPrototypeOf(exca), Object.getPrototypeOf(excb));
     27    assertEq(exca.message, excb.message);
     28    assertEq(typeof exca.fileName, "string");
     29    assertEq(typeof exca.stack, "string");
     30 }
     31 
     32 test("Object.create(null, {p: {value: 1}})", {p: {value: 2}});
     33 test("({})", {x: {get: 'bad'}});