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 /*
2 * Any copyright is dedicated to the Public Domain.
3 * http://creativecommons.org/licenses/publicdomain/
4 */
6 //-----------------------------------------------------------------------------
7 var BUGNUMBER = 635389;
8 var summary = 'Infinite recursion via [].{toString,toLocaleString,join}';
10 print(BUGNUMBER + ": " + summary);
12 /**************
13 * BEGIN TEST *
14 **************/
16 try
17 {
18 var x = [];
19 x.join = Array.prototype.toString;
20 "" + x;
21 throw new Error("should have thrown");
22 }
23 catch (e)
24 {
25 assertEq(e instanceof InternalError, true,
26 "should have thrown for over-recursion");
27 }
29 try
30 {
31 var x = { toString: Array.prototype.toString, join: Array.prototype.toString };
32 "" + x;
33 throw new Error("should have thrown");
34 }
35 catch (e)
36 {
37 assertEq(e instanceof InternalError, true,
38 "should have thrown for over-recursion");
39 }
41 /******************************************************************************/
43 if (typeof reportCompare === "function")
44 reportCompare(true, true);
46 print("All tests passed!");