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
35
|
var BUGNUMBER = 1264941;
var summary = 'CloneArrayBuffer should be called with byteLength of source typedArray';
print(BUGNUMBER + ": " + summary);
function test(ctor, byteLength) {
var abuf = new ctor(byteLength);
assertEq(abuf.byteLength, byteLength);
for (var byteOffset of [0, 16]) {
for (var elementLength = 0;
elementLength < (byteLength - byteOffset) / Float64Array.BYTES_PER_ELEMENT;
elementLength++) {
var a1 = new Float64Array(abuf, byteOffset, elementLength);
assertEq(a1.buffer.byteLength, byteLength);
assertEq(a1.byteLength, elementLength * Float64Array.BYTES_PER_ELEMENT);
assertEq(a1.byteOffset, byteOffset);
var a2 = new Float64Array(a1);
assertEq(a2.buffer.byteLength, a1.byteLength);
assertEq(a2.byteLength, a1.byteLength);
assertEq(a2.byteOffset, 0);
}
}
}
test(ArrayBuffer, 16);
test(ArrayBuffer, 128);
class MyArrayBuffer extends ArrayBuffer {}
test(MyArrayBuffer, 16);
test(MyArrayBuffer, 128);
if (typeof reportCompare === 'function')
reportCompare(true, true);
|