Wed, 31 Dec 2014 06:09:35 +0100
Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.
1 // Eval-in-frame of optimized frames to break out of an infinite loop.
3 load(libdir + "jitopts.js");
5 if (!jitTogglesMatch(Opts_IonEagerNoParallelCompilation))
6 quit(0);
8 withJitOptions(Opts_IonEagerNoParallelCompilation, function () {
9 var g = newGlobal();
10 var dbg = new Debugger;
12 g.eval("" + function f(d) { g(d); });
13 g.eval("" + function g(d) { h(d); });
14 g.eval("" + function h(d) {
15 var i = 0;
16 while (d)
17 interruptIf(d && i++ == 4000);
18 });
20 setInterruptCallback(function () {
21 dbg.addDebuggee(g);
22 var frame = dbg.getNewestFrame();
23 if (frame.callee.name != "h" || frame.implementation != "ion")
24 return true;
25 frame.eval("d = false;");
26 return true;
27 });
29 g.eval("(" + function () {
30 for (i = 0; i < 5; i++)
31 f(false);
32 f(true);
33 } + ")();");
34 });