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");
3 // Throw a TypeError if Proxy is called with less than two arguments
4 assertThrowsInstanceOf(function () { Proxy(); }, TypeError);
5 assertThrowsInstanceOf(function () { new Proxy(); }, TypeError);
6 assertThrowsInstanceOf(function () { Proxy({}); }, TypeError);
7 assertThrowsInstanceOf(function () { new Proxy({}); }, TypeError);
9 // Throw a TypeError if the first argument is not a non-null object
10 assertThrowsInstanceOf(function () { Proxy(0, {}); }, TypeError);
11 assertThrowsInstanceOf(function () { new Proxy(0, {}); }, TypeError);
12 assertThrowsInstanceOf(function () { Proxy(null, {}); }, TypeError);
13 assertThrowsInstanceOf(function () { new Proxy(null, {}); }, TypeError);
15 // Throw a TypeError if the second argument is not a non-null object
16 assertThrowsInstanceOf(function () { Proxy({}, 0); }, TypeError);
17 assertThrowsInstanceOf(function () { new Proxy({}, 0); }, TypeError);
18 assertThrowsInstanceOf(function () { Proxy({}, null); }, TypeError);
19 assertThrowsInstanceOf(function () { new Proxy({}, null); }, TypeError);
21 // Result of the call should be an object
22 assertEq(typeof Proxy({}, {}), 'object');
23 assertEq(typeof new Proxy({}, {}), 'object');