blob: 281a764acbdc8613e3b463909d672911cf624e3d (
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
26
27
28
29
30
31
32
33
34
|
// |reftest| shell-option(--enable-float16array)
// 22.2.4.3 TypedArray ( typedArray )
// Test [[Prototype]] of newly created typed array and its array buffer, and
// ensure they are both created in the correct global.
const thisGlobal = this;
const otherGlobal = newGlobal();
const typedArrays = [otherGlobal.eval("new Int32Array(0)")];
if (this.SharedArrayBuffer) {
typedArrays.push(otherGlobal.eval("new Int32Array(new SharedArrayBuffer(0))"));
}
for (let typedArray of typedArrays) {
// Ensure the "constructor" property isn't accessed.
Object.defineProperty(typedArray.buffer, "constructor", {
get() {
throw new Error("constructor property accessed");
}
});
for (let ctor of typedArrayConstructors) {
let newTypedArray = new ctor(typedArray);
assertEq(Object.getPrototypeOf(newTypedArray), ctor.prototype);
assertEq(Object.getPrototypeOf(newTypedArray.buffer), ArrayBuffer.prototype);
assertEq(newTypedArray.buffer.constructor, ArrayBuffer);
}
}
if (typeof reportCompare === "function")
reportCompare(0, 0);
|