js/src/jit-test/tests/saved-stacks/gc-frame-cache.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.

     1 // Test that SavedFrame instances get removed from the SavedStacks frames cache
     2 // after a GC.
     4 const FUZZ_FACTOR = 3;
     6 function assertAboutEq(actual, expected) {
     7   if (Math.abs(actual - expected) > FUZZ_FACTOR)
     8     throw new Error("Assertion failed: expected about " + expected + ", got " + actual +
     9                     ". FUZZ_FACTOR = " + FUZZ_FACTOR);
    10 }
    12 const stacks = [];
    14 stacks.push(saveStack());
    15 stacks.push(saveStack());
    16 stacks.push(saveStack());
    17 stacks.push(saveStack());
    18 stacks.push(saveStack());
    19 stacks.push(saveStack());
    20 stacks.push(saveStack());
    21 stacks.push(saveStack());
    22 stacks.push(saveStack());
    23 stacks.push(saveStack());
    24 stacks.push(saveStack());
    25 stacks.push(saveStack());
    26 stacks.push(saveStack());
    27 stacks.push(saveStack());
    28 stacks.push(saveStack());
    29 stacks.push(saveStack());
    30 stacks.push(saveStack());
    31 stacks.push(saveStack());
    32 stacks.push(saveStack());
    33 stacks.push(saveStack());
    34 stacks.push(saveStack());
    35 stacks.push(saveStack());
    36 stacks.push(saveStack());
    37 stacks.push(saveStack());
    38 stacks.push(saveStack());
    39 stacks.push(saveStack());
    40 stacks.push(saveStack());
    41 stacks.push(saveStack());
    42 stacks.push(saveStack());
    43 stacks.push(saveStack());
    44 stacks.push(saveStack());
    45 stacks.push(saveStack());
    46 stacks.push(saveStack());
    47 stacks.push(saveStack());
    48 stacks.push(saveStack());
    49 stacks.push(saveStack());
    50 stacks.push(saveStack());
    51 stacks.push(saveStack());
    52 stacks.push(saveStack());
    53 stacks.push(saveStack());
    54 stacks.push(saveStack());
    55 stacks.push(saveStack());
    56 stacks.push(saveStack());
    57 stacks.push(saveStack());
    58 stacks.push(saveStack());
    59 stacks.push(saveStack());
    60 stacks.push(saveStack());
    61 stacks.push(saveStack());
    62 stacks.push(saveStack());
    63 stacks.push(saveStack());
    64 stacks.push(saveStack());
    66 assertAboutEq(getSavedFrameCount(), 50);
    68 while (stacks.length) {
    69   stacks.pop();
    70 }
    71 gc();
    73 stacks = null;
    74 gc();
    76 assertAboutEq(getSavedFrameCount(), 0);

mercurial