Thu, 15 Jan 2015 15:59:08 +0100
Implement a real Private Browsing Mode condition by changing the API/ABI;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.
1 // A live Environment can observe the new variables introduced by ES5 non-strict direct eval.
3 var g = newGlobal();
4 g.eval("var x = 'global'; function f(s) { h(); eval(s); h(); }");
5 g.eval("function h() { debugger; }");
6 var dbg = Debugger(g);
7 var env = undefined;
8 var hits = 0;
9 dbg.onDebuggerStatement = function (hframe) {
10 if (env === undefined) {
11 // First debugger statement.
12 env = hframe.older.environment;
13 assertEq(env.find("x") !== env, true);
14 assertEq(env.names().indexOf("x"), -1);
15 } else {
16 // Second debugger statement, post-eval.
17 assertEq(env.find("x"), env);
18 assertEq(env.names().indexOf("x") >= 0, true);
19 }
20 hits++;
21 };
22 g.f("var x = 'local';");
23 assertEq(hits, 2);