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 // Complicated whitebox test for bug 487845.
2 function testGlobalShapeChangeAfterDeepBail() {
3 function f(name) {
4 this[name] = 1; // may change global shape
5 for (var i = 0; i < 4; i++)
6 ; // MonitorLoopEdge eventually triggers assertion
7 }
9 // When i==3, deep-bail, then change global shape enough times to exhaust
10 // the array of GlobalStates.
11 var arr = [[], [], [], ["bug0", "bug1", "bug2", "bug3", "bug4"]];
12 for (var i = 0; i < arr.length; i++)
13 arr[i].forEach(f);
14 }
15 testGlobalShapeChangeAfterDeepBail();