blob: 22c22154247f70b9398a06f3a1dbb9f91e634878 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
// |jit-test| skip-if: !this.SharedArrayBuffer
load(libdir + "asserts.js");
var sab = new SharedArrayBuffer(1 * Int32Array.BYTES_PER_ELEMENT);
// Make a copy, sharing the same memory
var sab2 = (setSharedObject(sab), getSharedObject());
// Assert it's not the same object
assertEq(sab === sab2, false);
// Assert they're sharing memory
new Int32Array(sab)[0] = 0x12345678;
assertEq(new Int32Array(sab2)[0], 0x12345678)
sab.constructor = {
[Symbol.species]: function(length) {
return sab2;
}
};
// This should throw because the buffer being sliced shares memory with the new
// buffer it constructs.
assertThrowsInstanceOf(() => sab.slice(), TypeError);
|