36 lines
972 B
JavaScript
36 lines
972 B
JavaScript
|
// Copyright 2018 the V8 project authors. All rights reserved.
|
||
|
// Use of this source code is governed by a BSD-style license that can be
|
||
|
// found in the LICENSE file.
|
||
|
|
||
|
// Flags: --allow-natives-syntax
|
||
|
|
||
|
const constructors = [
|
||
|
[Uint8Array, [0, 1]],
|
||
|
[Int8Array, [0, 1]],
|
||
|
[Uint16Array, [0, 1]],
|
||
|
[Int16Array, [0, 1]],
|
||
|
[Uint32Array, [0, 1]],
|
||
|
[Int32Array, [0, 1]],
|
||
|
[Float32Array, [0, 1]],
|
||
|
[Float64Array, [0, 1]],
|
||
|
[Uint8ClampedArray, [0, 1]],
|
||
|
[BigInt64Array, [0n, 1n]],
|
||
|
[BigUint64Array, [0n, 1n]]
|
||
|
];
|
||
|
|
||
|
let typedArray;
|
||
|
function detachBuffer() {
|
||
|
%ArrayBufferDetach(typedArray.buffer);
|
||
|
return 'a';
|
||
|
}
|
||
|
Number.prototype.toString = detachBuffer;
|
||
|
BigInt.prototype.toString = detachBuffer;
|
||
|
Number.prototype.toLocaleString = detachBuffer;
|
||
|
BigInt.prototype.toLocaleString = detachBuffer;
|
||
|
|
||
|
constructors.forEach(([constructor, arr]) => {
|
||
|
typedArray = new constructor(arr);
|
||
|
assertSame(typedArray.join(), '0,1');
|
||
|
assertSame(typedArray.toLocaleString(), 'a,');
|
||
|
});
|