summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/asm.js/testStealing.js
blob: 8751cea49ed40c1a82b0cd67907c335dab2f921b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// |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);