summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/asm.js/testParallelCompile.js
blob: 41f87973521b911566da8e10045fa44a566f89c7 (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
load(libdir + "asm.js");

if (!isAsmJSCompilationAvailable())
    quit();

var module = "'use asm';\n";
for (var i = 0; i < 100; i++) {
    module += "function f" + i + "(i) {\n";
    module += "  i=i|0; var j=0; j=(i+1)|0; i=(j-4)|0; i=(i+j)|0; return i|0\n";
    module += "}\n";
}
module += "return f0";
var script = "(function() {\n" + module + "})";

for (var i = 0; i < 10; i++) {
    try {
        offThreadCompileScript(script);
        var f = new Function(module);
        var g = runOffThreadScript();
        assertEq(isAsmJSModule(f), true);
        assertEq(isAsmJSModule(g), true);
    } catch (e) {
        // ignore spurious error when offThreadCompileScript can't run in
        // parallel
    }
}