summaryrefslogtreecommitdiffstats
path: root/js/src/tests/non262/TypedArray/subarray.js
blob: a7bfab0efde56ed8b4faba971252fec33daa5eff (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
// Bug 1291003
if (typeof detachArrayBuffer === "function") {
    for (let constructor of typedArrayConstructors) {
        const elementSize = constructor.BYTES_PER_ELEMENT;

        let targetOffset;
        let buffer = new ArrayBuffer(2 * elementSize);
        let typedArray = new constructor(buffer, 1 * elementSize, 1);
        typedArray.constructor = {
            [Symbol.species]: function(ab, offset, length) {
                targetOffset = offset;
                return new constructor(1);
            }
        };

        let beginIndex = {
            valueOf() {
                detachArrayBuffer(buffer);
                return 0;
            }
        };
        typedArray.subarray(beginIndex);

        assertEq(targetOffset, 1 * elementSize);
    }
}

if (typeof reportCompare === "function")
    reportCompare(true, true);