From d190e700f34cc2839f80da0beec33979154666eb Mon Sep 17 00:00:00 2001 From: Leonardo Balter <leonardo.balter@gmail.com> Date: Tue, 28 Jun 2016 16:27:28 -0300 Subject: [PATCH] Add bit-precision tests for TypedArray#copyWithin --- .../prototype/copyWithin/bit-precision.js | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 test/built-ins/TypedArray/prototype/copyWithin/bit-precision.js diff --git a/test/built-ins/TypedArray/prototype/copyWithin/bit-precision.js b/test/built-ins/TypedArray/prototype/copyWithin/bit-precision.js new file mode 100644 index 0000000000..f2725a2425 --- /dev/null +++ b/test/built-ins/TypedArray/prototype/copyWithin/bit-precision.js @@ -0,0 +1,44 @@ +// Copyright (C) 2016 the V8 project authors. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-%typedarray%.prototype.copywithin +es6id: 22.2.3.5 +description: Preservation of bit-level encoding +info: | + Array.prototype.copyWithin (target, start [ , end ] ) + + 12. Repeat, while count > 0 + [...] + d. If fromPresent is true, then + i. Let fromVal be ? Get(O, fromKey). + ii. Perform ? Set(O, toKey, fromVal, true). +includes: [nans.js, compareArray.js, testTypedArray.js] +---*/ + +function body(FloatArray) { + var subject = new FloatArray(distinctNaNs.length * 2); + + distinctNaNs.forEach(function(v, i) { + subject[i] = v; + }); + + var originalBytes, copiedBytes; + var length = distinctNaNs.length * FloatArray.BYTES_PER_ELEMENT; + + originalBytes = new Uint8Array( + subject.buffer, + 0, + length + ); + + subject.copyWithin(distinctNaNs.length, 0); + copiedBytes = new Uint8Array( + subject.buffer, + length + ); + + assert(compareArray(originalBytes, copiedBytes)); +} + +testWithTypedArrayConstructors(body, [Float32Array, Float64Array]); -- GitLab