Source code

Revision control

Copy as Markdown

Other Tools

/*
* For eval and Function constructors, Script.prototype.sourceStart and
* Script.prototype.sourceLength should comprise the entire script (excluding
* arguments in the case of Function constructors)
*/
let g = newGlobal({newCompartment: true});
let dbg = new Debugger(g);
var count = 0;
function test(string, range) {
dbg.onNewScript = function (script) {
++count;
if (count % 2 == 0) {
assertEq(script.sourceStart, range[0]);
assertEq(script.sourceLength, range[1]);
}
}
g.eval(string);
}
test("eval('2 * 3')", [0, 5]);
test("new Function('2 * 3')", [0, 31]);
test("new Function('x', 'x * x')", [0, 32]);
assertEq(count, 6);