Source code

Revision control

Copy as Markdown

Other Tools

// |jit-test| skip-if: !isAsmJSCompilationAvailable()
load(libdir + "asm.js");
load(libdir + "asserts.js");
var code = USE_ASM + "var i32 = new stdlib.Int32Array(buf); function f() { return i32[0]|0 } return f";
var ab = new ArrayBuffer(BUF_MIN);
new Int32Array(ab)[0] = 42;
var f = asmLink(asmCompile('stdlib', 'ffi', 'buf', code), this, null, ab);
assertEq(f(), 42);
assertThrowsInstanceOf(() => detachArrayBuffer(ab), Error);
assertEq(f(), 42);
assertThrowsInstanceOf(() => serialize(ab, [ab]), Error);
assertEq(f(), 42);