michael@0: load(libdir + "asm.js"); michael@0: michael@0: if (!isAsmJSCompilationAvailable()) michael@0: quit(); michael@0: michael@0: var module = "'use asm';\n"; michael@0: for (var i = 0; i < 100; i++) { michael@0: module += "function f" + i + "(i) {\n"; michael@0: module += " i=i|0; var j=0; j=(i+1)|0; i=(j-4)|0; i=(i+j)|0; return i|0\n"; michael@0: module += "}\n"; michael@0: } michael@0: module += "return f0"; michael@0: var script = "(function() {\n" + module + "})"; michael@0: michael@0: for (var i = 0; i < 10; i++) { michael@0: try { michael@0: offThreadCompileScript(script); michael@0: var f = new Function(module); michael@0: var g = runOffThreadScript(); michael@0: assertEq(isAsmJSModule(f), true); michael@0: assertEq(isAsmJSModule(g), true); michael@0: } catch (e) { michael@0: // ignore spurious error when offThreadCompileScript can't run in michael@0: // parallel michael@0: } michael@0: }