| load(libdir + "asm.js"); |
| |
| setCachingEnabled(true); |
| if (!isAsmJSCompilationAvailable() || !isCachingEnabled()) |
| quit(); |
| |
| // Test Latin1 and TwoByte PropertyName serialization. |
| |
| // Latin1 |
| var body1 = "'use asm'; function funName() { return 42 } return funName"; |
| var m = new Function(body1); |
| assertEq(isAsmJSModule(m), true); |
| assertEq(m()(), 42); |
| var m = new Function(body1); |
| assertEq(isAsmJSModuleLoadedFromCache(m), true); |
| assertEq(m()(), 42); |
| |
| var f = m(); |
| assertEq(isLatin1(f.name), true); |
| assertEq(f.name, "funName"); |
| |
| // TwoByte |
| var body1 = "'use asm'; function funName\u1200() { return 42 } return funName\u1200"; |
| var m = new Function(body1); |
| assertEq(isAsmJSModule(m), true); |
| assertEq(m()(), 42); |
| var m = new Function(body1); |
| assertEq(isAsmJSModuleLoadedFromCache(m), true); |
| assertEq(m()(), 42); |
| |
| var f = m(); |
| assertEq(isLatin1(f.name), false); |
| assertEq(f.name, "funName\u1200"); |