js/src/jit-test/tests/debug/Debugger-findScripts-04.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

michael@0 1 // Within a series of evals and calls, all their frames' scripts appear in findScripts' result.
michael@0 2 var g = newGlobal();
michael@0 3 var dbg = new Debugger(g);
michael@0 4 var log;
michael@0 5
michael@0 6 g.check = function () {
michael@0 7 log += 'c';
michael@0 8 var scripts = dbg.findScripts();
michael@0 9
michael@0 10 var innerEvalFrame = dbg.getNewestFrame();
michael@0 11 assertEq(innerEvalFrame.type, "eval");
michael@0 12 assertEq(scripts.indexOf(innerEvalFrame.script) != -1, true);
michael@0 13
michael@0 14 var callFrame = innerEvalFrame.older;
michael@0 15 assertEq(callFrame.type, "call");
michael@0 16 assertEq(scripts.indexOf(callFrame.script) != -1, true);
michael@0 17
michael@0 18 var outerEvalFrame = callFrame.older;
michael@0 19 assertEq(outerEvalFrame.type, "eval");
michael@0 20 assertEq(scripts.indexOf(outerEvalFrame.script) != -1, true);
michael@0 21 assertEq(innerEvalFrame != outerEvalFrame, true);
michael@0 22 };
michael@0 23
michael@0 24 g.eval('function f() { eval("check();") }');
michael@0 25 log = '';
michael@0 26 g.eval('f();');
michael@0 27 assertEq(log, 'c');

mercurial