tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

bailout-oom-01.js (623B)


      1 // |jit-test| --no-threads; --fast-warmup
      2 
      3 setJitCompilerOption("ion.warmup.trigger", 20);
      4 gczeal(0);
      5 
      6 var nonce = 0;
      7 
      8 function doTest() {
      9    // Block Warp/Ion compile.
     10    with ({}) {};
     11 
     12    nonce += 1;
     13 
     14    // Fresh function and script.
     15    let fn = new Function("arg", `
     16        /* {nonce} */
     17        var r1 = [];
     18        var r2 = [];
     19        return (() => arg + 1)();
     20    `);
     21 
     22    // Warm up JITs.
     23    for (var i = 0; i < 20; ++i) {
     24        assertEq(fn(i), i + 1);
     25    }
     26 
     27    // Trigger bailout.
     28    fn();
     29 }
     30 
     31 // Warmup doTest already.
     32 doTest();
     33 doTest();
     34 
     35 // OOM test the JIT compilation and bailout.
     36 oomTest(doTest);