tor-browser

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

Object-boundTargetFunction-01.js (988B)


      1 // Smoke tests for bound function things.
      2 
      3 var g = newGlobal({newCompartment: true});
      4 var dbg = new Debugger;
      5 var gw = dbg.addDebuggee(g);
      6 var arrw = gw.executeInGlobal("var arr = []; arr;").return;
      7 var pushw = gw.executeInGlobal("var push = arr.push.bind(arr); push;").return;
      8 assertEq(pushw.isBoundFunction, true);
      9 assertEq(pushw.boundThis, arrw);
     10 assertEq(pushw.boundArguments.length, 0);
     11 
     12 var arr2 = gw.executeInGlobal("var arr2 = []; arr2").return;
     13 assertEq(pushw.call(arr2, "tuesday").return, 1);
     14 g.eval("assertEq(arr.length, 1);");
     15 g.eval("assertEq(arr[0], 'tuesday');");
     16 g.eval("assertEq(arr2.length, 0);");
     17 
     18 g.eval("push = arr.push.bind(arr, 1, 'seven', {x: 'q'});");
     19 pushw = gw.getOwnPropertyDescriptor("push").value;
     20 assertEq(pushw.isBoundFunction, true);
     21 var args = pushw.boundArguments;
     22 assertEq(args.length, 3);
     23 assertEq(args[0], 1);
     24 assertEq(args[1], 'seven');
     25 assertEq(args[2] instanceof Debugger.Object, true);
     26 assertEq(args[2].getOwnPropertyDescriptor("x").value, "q");