summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/xdr/bug1390856.js
blob: 1af0bc30dd8cafe9377a1ec42161c6cf787e9958 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// |jit-test| skip-if: !('oomTest' in this) || helperThreadCount() === 0

let THREAD_TYPE_PARSE = 4;

// Test main thread encode/decode OOM
oomTest(function() {
    let t = cacheEntry(`function f() { function g() { }; return 3; };`);

    evaluate(t, { sourceIsLazy: true, saveIncrementalBytecode: true });
    evaluate(t, { sourceIsLazy: true, readBytecode: true });
});

// Test helper thread decode OOM
let t = cacheEntry(`function f() { function g() { }; return 3; };`);
evaluate(t, { sourceIsLazy: true, saveIncrementalBytecode: true });
for (var i = 1; i < 100; ++i) {
    try {
        oomAtAllocation(i, THREAD_TYPE_PARSE);
        offThreadDecodeStencil(t, { sourceIsLazy: true });
        var stencil = finishOffThreadStencil();
        evalStencil(stencil);
    }
    catch (e) {
        assertEq(e, "out of memory");
    }
}