diff options
Diffstat (limited to 'js/src/jit-test/tests/asm.js/testParallelCompile.js')
-rw-r--r-- | js/src/jit-test/tests/asm.js/testParallelCompile.js | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/asm.js/testParallelCompile.js b/js/src/jit-test/tests/asm.js/testParallelCompile.js new file mode 100644 index 000000000..41f879735 --- /dev/null +++ b/js/src/jit-test/tests/asm.js/testParallelCompile.js @@ -0,0 +1,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 + } +} |