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 function g(a, b, c, d) {}
2 function f(a, b, c)
3 {
4 arguments.length = getMaxArgs() + 1;
5 g.apply(this, arr);
6 }
7 var args = [[5], [5], [5], [5], [5], [5], [5], [5], [5], [5], [5], let (x = []) (x.length = getMaxArgs() + 1, x)]
8 try
9 {
10 for (var i = 0; i < args.length; i++) { arr = args[i]; f(); }
11 throw new Error("didn't throw");
12 }
13 catch (e)
14 {
15 assertEq(e instanceof RangeError, true, "wrong exception: " + e);
16 }
17 try
18 {
19 for (var i = 0; i < args.length; i++) { arr = args[i]; f(); }
20 throw new Error("didn't throw");
21 }
22 catch (e)
23 {
24 assertEq(e instanceof RangeError, true, "wrong exception: " + e);
25 }