js/src/tests/js1_8_5/regress/regress-592556-c35.js

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

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.

michael@0 1 // Any copyright is dedicated to the Public Domain.
michael@0 2 // http://creativecommons.org/licenses/publicdomain/
michael@0 3 // Contributor: Jason Orendorff <jorendorff@mozilla.com>
michael@0 4
michael@0 5 var obj = {a: 0, b: 1, c: 2};
michael@0 6 delete obj.b; // switch to dictionary mode
michael@0 7 Object.defineProperty(obj, 'g',
michael@0 8 {get: function () { return -1; }, configurable: true});
michael@0 9 for (var i = 3; i < 20; i++)
michael@0 10 obj['x' + i] = i; // get property table
michael@0 11 for (var i = 3; i < 20; i++)
michael@0 12 delete obj['x' + i]; // add to freelist
michael@0 13 delete obj.g; // must update lastProp->freeslot, to avoid assertion
michael@0 14
michael@0 15 // extra junk to try to hit the assertion, if freeslot is not updated
michael@0 16 gc();
michael@0 17 obj.d = 3;
michael@0 18 obj.e = 4;
michael@0 19
michael@0 20 reportCompare(0, 0, 'ok');

mercurial