Sat, 03 Jan 2015 20:18:00 +0100
Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.
1 load(libdir + "asserts.js");
2 var ieval = eval;
4 // Now for a tour of the various ways you can access arguments.
5 assertThrowsInstanceOf(function () {
6 ieval("function x(...rest) { arguments; }");
7 }, SyntaxError)
8 assertThrowsInstanceOf(function () {
9 Function("...rest", "arguments;");
10 }, SyntaxError);
11 assertThrowsInstanceOf(function (...rest) {
12 eval("arguments;");
13 }, SyntaxError);
14 assertThrowsInstanceOf(function (...rest) {
15 eval("arguments = 42;");
16 }, SyntaxError);
18 function g(...rest) {
19 assertThrowsInstanceOf(h, Error);
20 }
21 function h() {
22 g.arguments;
23 }
24 g();
26 // eval() is evil, but you can still use it with rest parameters!
27 function still_use_eval(...rest) {
28 eval("x = 4");
29 }
30 still_use_eval();