summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/asm.js/testStealing.js
blob: f05c81b170f789fb84b95fbc5d81274bd1ffd66f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
load(libdir + "asm.js");
load(libdir + "asserts.js");

if (!isAsmJSCompilationAvailable())
    quit();

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);