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");