Frame-evalWithBindings-02.js (707B)
1 // evalWithBindings to call a method of a debuggee value 2 3 var g = newGlobal({newCompartment: true}); 4 var dbg = new Debugger; 5 var global = dbg.addDebuggee(g); 6 var hits = 0; 7 dbg.onDebuggerStatement = function (frame) { 8 var obj = frame.arguments[0]; 9 var expected = frame.arguments[1]; 10 assertEq(frame.evalWithBindings("obj.toString()", {obj: obj}).return, expected); 11 hits++; 12 }; 13 14 g.eval("function f(obj, expected) { debugger; }"); 15 16 g.eval("f(new Number(-0), '0');"); 17 g.eval("f(new String('ok'), 'ok');"); 18 g.eval("f(Symbol('still ok'), 'Symbol(still ok)');"); 19 g.eval("f(Object(Symbol('still ok')), 'Symbol(still ok)');"); 20 g.eval("f({toString: function () { return f; }}, f);"); 21 assertEq(hits, 5);