js/src/jit-test/tests/saved-stacks/gc-frame-cache.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     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