From 9232d65b303620da18e2fe57945275cd3b29cb22 Mon Sep 17 00:00:00 2001
From: Robin Templeton <robin@igalia.com>
Date: Tue, 24 Oct 2017 11:50:47 -0400
Subject: [PATCH] BigInt TypedArray tests

- add @jakobkummerow's changes
- remove EOL whitespace
- use 'Array.isArray' instead of 'instanceof Array'
- check for BigInt type in toLocaleString tests
- specify TypedArray constructor list for non-BigInt tests
- update TypedArray harness test for BigInt
- add a missing type coercion
- disable more tests for Big(U)Int64Array
- check for BigInt before using BigInt TypedArray constructors
---
 harness/testTypedArray.js                     |  20 +++-
 .../copyWithin/coerced-values-end.js          |  26 ++---
 .../copyWithin/coerced-values-start.js        |  34 +++---
 .../copyWithin/coerced-values-target.js       |  34 +++---
 .../prototype/copyWithin/negative-end.js      |  34 +++---
 .../copyWithin/negative-out-of-bounds-end.js  |  42 +++----
 .../negative-out-of-bounds-start.js           |  34 +++---
 .../negative-out-of-bounds-target.js          |  18 +--
 .../prototype/copyWithin/negative-start.js    |  26 ++---
 .../prototype/copyWithin/negative-target.js   |  14 +--
 .../non-negative-out-of-bounds-end.js         |  18 +--
 ...negative-out-of-bounds-target-and-start.js |  30 ++---
 .../non-negative-target-and-start.js          |  18 +--
 .../non-negative-target-start-and-end.js      |  22 ++--
 .../prototype/copyWithin/return-this.js       |   4 +-
 .../prototype/copyWithin/undefined-end.js     |  10 +-
 .../prototype/entries/iter-prototype.js       |   4 +-
 .../prototype/entries/return-itor.js          |  12 +-
 .../callbackfn-arguments-with-thisarg.js      |  10 +-
 .../callbackfn-arguments-without-thisarg.js   |  10 +-
 ...lbackfn-no-interaction-over-non-integer.js |   8 +-
 ...lbackfn-return-does-not-change-instance.js |  10 +-
 ...callbackfn-set-value-during-interaction.js |  16 +--
 .../get-length-uses-internal-arraylength.js   |   4 +-
 .../prototype/every/values-are-not-cached.js  |   8 +-
 .../prototype/fill/coerced-indexes.js         |  30 ++---
 .../fill/fill-values-conversion-once.js       |   8 +-
 .../fill/fill-values-custom-start-and-end.js  |  12 +-
 .../prototype/fill/fill-values-non-numeric.js |  36 +++---
 .../fill/fill-values-relative-end.js          |  10 +-
 .../fill/fill-values-relative-start.js        |  10 +-
 .../TypedArray/prototype/fill/fill-values.js  |   6 +-
 .../fill/get-length-ignores-length-prop.js    |   4 +-
 .../prototype/fill/return-abrupt-from-end.js  |   4 +-
 .../fill/return-abrupt-from-set-value.js      |   4 +-
 .../fill/return-abrupt-from-start.js          |   4 +-
 .../TypedArray/prototype/fill/return-this.js  |   6 +-
 .../callbackfn-arguments-with-thisarg.js      |  10 +-
 .../callbackfn-arguments-without-thisarg.js   |  10 +-
 ...allbackfn-no-iteration-over-non-integer.js |   8 +-
 ...lbackfn-return-does-not-change-instance.js |  10 +-
 .../callbackfn-set-value-during-iteration.js  |  16 +--
 .../filter/result-does-not-share-buffer.js    |   4 +-
 .../result-full-callbackfn-returns-true.js    |   4 +-
 .../filter/speciesctor-get-ctor-abrupt.js     |   4 +-
 .../filter/speciesctor-get-ctor-inherited.js  |   4 +-
 .../speciesctor-get-ctor-returns-throws.js    |   4 +-
 .../prototype/filter/speciesctor-get-ctor.js  |   4 +-
 ...ctor-get-species-custom-ctor-invocation.js |   6 +-
 ...es-custom-ctor-returns-another-instance.js |   4 +-
 .../speciesctor-get-species-custom-ctor.js    |   6 +-
 .../prototype/filter/values-are-not-cached.js |   8 +-
 .../prototype/filter/values-are-set.js        |  10 +-
 .../find/get-length-ignores-length-prop.js    |   6 +-
 .../find/predicate-call-changes-value.js      |  24 ++--
 .../find/predicate-call-parameters.js         |  10 +-
 ...rn-found-value-predicate-result-is-true.js |  20 ++--
 .../get-length-ignores-length-prop.js         |   4 +-
 .../findIndex/predicate-call-changes-value.js |  20 ++--
 .../findIndex/predicate-call-parameters.js    |  10 +-
 .../return-index-predicate-result-is-true.js  |   6 +-
 ...ve-one-if-predicate-returns-false-value.js |   4 +-
 .../callbackfn-arguments-with-thisarg.js      |  10 +-
 .../callbackfn-arguments-without-thisarg.js   |  10 +-
 ...lbackfn-no-interaction-over-non-integer.js |   8 +-
 ...lbackfn-return-does-not-change-instance.js |  10 +-
 ...callbackfn-set-value-during-interaction.js |  16 +--
 .../forEach/values-are-not-cached.js          |   8 +-
 .../prototype/includes/fromIndex-infinity.js  |   8 +-
 .../includes/fromIndex-minus-zero.js          |  10 +-
 .../get-length-uses-internal-arraylength.js   |   6 +-
 ...eturn-abrupt-tointeger-fromindex-symbol.js |   6 +-
 .../return-abrupt-tointeger-fromindex.js      |   6 +-
 .../prototype/includes/samevaluezero.js       |   4 +-
 .../includes/search-found-returns-true.js     |  22 ++--
 .../search-not-found-returns-false.js         |  16 +--
 .../prototype/includes/tointeger-fromindex.js |  36 +++---
 .../prototype/indexOf/fromIndex-infinity.js   |   8 +-
 .../prototype/indexOf/fromIndex-minus-zero.js |   8 +-
 .../get-length-uses-internal-arraylength.js   |   6 +-
 .../indexOf/search-found-returns-index.js     |  22 ++--
 .../search-not-found-returns-minus-one.js     |  16 +--
 .../prototype/indexOf/strict-comparison.js    |   4 +-
 .../prototype/indexOf/tointeger-fromindex.js  |  36 +++---
 ...sult-from-tostring-on-each-simple-value.js |   4 +-
 ...ator-result-from-tostring-on-each-value.js |   4 +-
 .../get-length-uses-internal-arraylength.js   |   4 +-
 ...sult-from-tostring-on-each-simple-value.js |   4 +-
 .../result-from-tostring-on-each-value.js     |   4 +-
 .../prototype/keys/iter-prototype.js          |   4 +-
 .../TypedArray/prototype/keys/return-itor.js  |   6 +-
 .../lastIndexOf/fromIndex-infinity.js         |   8 +-
 .../lastIndexOf/fromIndex-minus-zero.js       |   8 +-
 .../get-length-uses-internal-arraylength.js   |   6 +-
 .../lastIndexOf/search-found-returns-index.js |  48 ++++----
 .../search-not-found-returns-minus-one.js     |  24 ++--
 .../lastIndexOf/strict-comparison.js          |   4 +-
 .../lastIndexOf/tointeger-fromindex.js        |  36 +++---
 .../prototype/map/arraylength-internal.js     |   4 +-
 .../map/callbackfn-arguments-with-thisarg.js  |  11 +-
 .../callbackfn-arguments-without-thisarg.js   |  11 +-
 .../prototype/map/callbackfn-detachbuffer.js  |   1 +
 ...interaction-over-non-integer-properties.js |   9 +-
 ...llbackfn-return-affects-returned-object.js |  12 +-
 ...lbackfn-return-does-not-change-instance.js |  12 +-
 ...rn-does-not-copy-non-integer-properties.js |   6 +-
 ...callbackfn-set-value-during-interaction.js |  17 +--
 .../prototype/map/callbackfn-this.js          |   6 +-
 .../prototype/map/values-are-not-cached.js    |  10 +-
 ...callbackfn-arguments-custom-accumulator.js |  10 +-
 ...allbackfn-arguments-default-accumulator.js |  14 +--
 ...o-iteration-over-non-integer-properties.js |   8 +-
 ...lbackfn-return-does-not-change-instance.js |  10 +-
 .../callbackfn-set-value-during-iteration.js  |  16 +--
 .../get-length-uses-internal-arraylength.js   |   4 +-
 .../result-is-last-callbackfn-return.js       |   6 +-
 .../prototype/reduce/result-of-any-type.js    |   4 +-
 .../return-first-value-without-callbackfn.js  |   6 +-
 .../prototype/reduce/values-are-not-cached.js |   8 +-
 ...callbackfn-arguments-custom-accumulator.js |  10 +-
 ...allbackfn-arguments-default-accumulator.js |  14 +--
 ...o-iteration-over-non-integer-properties.js |   8 +-
 ...lbackfn-return-does-not-change-instance.js |  10 +-
 .../callbackfn-set-value-during-iteration.js  |  16 +--
 .../get-length-uses-internal-arraylength.js   |   4 +-
 .../result-is-last-callbackfn-return.js       |   6 +-
 .../reduceRight/result-of-any-type.js         |   4 +-
 .../return-first-value-without-callbackfn.js  |   6 +-
 .../reduceRight/values-are-not-cached.js      |   8 +-
 .../get-length-uses-internal-arraylength.js   |   4 +-
 .../TypedArray/prototype/reverse/reverts.js   |  30 ++---
 .../set/array-arg-offset-tointeger.js         | 110 +++++++++---------
 ...y-arg-return-abrupt-from-src-get-length.js |   4 +-
 ...ay-arg-return-abrupt-from-src-get-value.js |  28 ++---
 ...rg-return-abrupt-from-src-length-symbol.js |   4 +-
 ...array-arg-return-abrupt-from-src-length.js |   4 +-
 ...n-abrupt-from-src-tonumber-value-symbol.js |  20 ++--
 ...g-return-abrupt-from-src-tonumber-value.js |  28 ++---
 ...-arg-return-abrupt-from-toobject-offset.js |   4 +-
 .../set/array-arg-set-values-in-order.js      |  10 +-
 .../prototype/set/array-arg-set-values.js     |  32 ++---
 ...arg-src-tonumber-value-type-conversions.js |  34 +++---
 .../array-arg-src-values-are-not-cached.js    |  22 ++--
 .../array-arg-target-arraylength-internal.js  |   4 +-
 ...buffer-detached-on-get-src-value-throws.js |   6 +-
 .../set/typedarray-arg-offset-tointeger.js    |  76 ++++++------
 ...y-arg-set-values-diff-buffer-other-type.js |  19 +--
 ...ay-arg-set-values-diff-buffer-same-type.js |  16 +--
 ...y-arg-set-values-same-buffer-other-type.js |   2 +-
 ...ay-arg-set-values-same-buffer-same-type.js |  14 +--
 ...typedarray-arg-src-arraylength-internal.js |   4 +-
 .../typedarray-arg-src-byteoffset-internal.js |   9 +-
 ...edarray-arg-target-arraylength-internal.js |   4 +-
 ...pedarray-arg-target-byteoffset-internal.js |   9 +-
 .../prototype/slice/arraylength-internal.js   |   8 +-
 .../TypedArray/prototype/slice/infinity.js    |   8 +-
 .../TypedArray/prototype/slice/minus-zero.js  |   8 +-
 ...esult-does-not-copy-ordinary-properties.js |   4 +-
 .../slice/results-with-different-length.js    |  60 +++++-----
 .../slice/results-with-empty-length.js        |   4 +-
 .../slice/results-with-same-length.js         |  12 +-
 .../set-values-from-different-ctor-type.js    |   9 +-
 .../slice/speciesctor-get-ctor-abrupt.js      |   4 +-
 .../slice/speciesctor-get-ctor-inherited.js   |   4 +-
 .../speciesctor-get-ctor-returns-throws.js    |   4 +-
 .../prototype/slice/speciesctor-get-ctor.js   |   4 +-
 ...ctor-get-species-custom-ctor-invocation.js |   4 +-
 ...es-custom-ctor-returns-another-instance.js |   4 +-
 .../speciesctor-get-species-custom-ctor.js    |   6 +-
 .../prototype/slice/tointeger-end.js          |  20 ++--
 .../prototype/slice/tointeger-start.js        |  30 ++---
 .../some/callbackfn-arguments-with-thisarg.js |  10 +-
 .../callbackfn-arguments-without-thisarg.js   |  10 +-
 ...lbackfn-no-interaction-over-non-integer.js |   8 +-
 ...lbackfn-return-does-not-change-instance.js |  10 +-
 ...callbackfn-set-value-during-interaction.js |  16 +--
 .../get-length-uses-internal-arraylength.js   |   4 +-
 .../prototype/some/values-are-not-cached.js   |   8 +-
 .../prototype/sort/arraylength-internal.js    |   4 +-
 .../prototype/sort/comparefn-call-throws.js   |   4 +-
 .../prototype/sort/comparefn-calls.js         |   8 +-
 .../sort/comparefn-nonfunction-call-throws.js |   4 +-
 .../prototype/sort/return-same-instance.js    |   4 +-
 .../sort/sortcompare-with-no-tostring.js      |   6 +-
 .../prototype/sort/sorted-values.js           |  18 +--
 .../TypedArray/prototype/subarray/infinity.js |   8 +-
 .../prototype/subarray/minus-zero.js          |   8 +-
 ...esult-does-not-copy-ordinary-properties.js |   4 +-
 .../result-is-new-instance-from-same-ctor.js  |   6 +-
 ...sult-is-new-instance-with-shared-buffer.js |  12 +-
 .../subarray/results-with-different-length.js |  60 +++++-----
 .../subarray/results-with-empty-length.js     |   4 +-
 .../subarray/results-with-same-length.js      |  12 +-
 .../subarray/speciesctor-get-ctor-abrupt.js   |   4 +-
 .../speciesctor-get-ctor-inherited.js         |   4 +-
 .../speciesctor-get-ctor-returns-throws.js    |   4 +-
 .../subarray/speciesctor-get-ctor.js          |   4 +-
 ...ctor-get-species-custom-ctor-invocation.js |   4 +-
 ...es-custom-ctor-returns-another-instance.js |   4 +-
 .../speciesctor-get-species-custom-ctor.js    |   6 +-
 .../prototype/subarray/tointeger-begin.js     |  30 ++---
 .../prototype/subarray/tointeger-end.js       |  20 ++--
 .../calls-tolocalestring-from-each-value.js   |  10 +-
 .../calls-tostring-from-each-value.js         |   8 +-
 .../calls-valueof-from-each-value.js          |   8 +-
 .../get-length-uses-internal-arraylength.js   |   4 +-
 ...abrupt-from-firstelement-tolocalestring.js |   8 +-
 ...eturn-abrupt-from-firstelement-tostring.js |   8 +-
 ...return-abrupt-from-firstelement-valueof.js |   8 +-
 ...-abrupt-from-nextelement-tolocalestring.js |   8 +-
 ...return-abrupt-from-nextelement-tostring.js |   8 +-
 .../return-abrupt-from-nextelement-valueof.js |   8 +-
 .../prototype/toLocaleString/return-result.js |   4 +-
 .../prototype/values/iter-prototype.js        |   4 +-
 .../prototype/values/return-itor.js           |  12 +-
 .../custom-ctor-returns-other-instance.js     |  12 +-
 .../TypedArrays/from/mapfn-arguments.js       |   3 +-
 .../from/mapfn-this-with-thisarg.js           |   3 +-
 .../mapfn-this-without-thisarg-non-strict.js  |   7 +-
 .../from/mapfn-this-without-thisarg-strict.js |   3 +-
 .../from/new-instance-using-custom-ctor.js    |  10 +-
 .../from/new-instance-with-mapfn.js           |  10 +-
 .../from/new-instance-without-mapfn.js        |  10 +-
 .../from/set-value-abrupt-completion.js       |   5 +-
 .../DefineOwnProperty/desc-value-throws.js    |   4 +-
 .../key-is-greater-than-last-index.js         |   4 +-
 .../key-is-lower-than-zero.js                 |   4 +-
 .../DefineOwnProperty/key-is-minus-zero.js    |   4 +-
 .../key-is-not-canonical-index.js             |  16 +--
 .../DefineOwnProperty/key-is-not-integer.js   |  16 +--
 .../key-is-not-numeric-index.js               |   4 +-
 .../key-is-numericindex-accessor-desc.js      |   8 +-
 .../key-is-numericindex-desc-configurable.js  |   4 +-
 ...key-is-numericindex-desc-not-enumerable.js |   4 +-
 .../key-is-numericindex-desc-not-writable.js  |   4 +-
 .../DefineOwnProperty/key-is-numericindex.js  |  10 +-
 .../DefineOwnProperty/key-is-symbol.js        |   4 +-
 .../non-extensible-new-key.js                 |   4 +-
 .../non-extensible-redefine-key.js            |   4 +-
 .../internals/DefineOwnProperty/set-value.js  |  12 +-
 .../this-is-not-extensible.js                 |   4 +-
 ...etached-buffer-key-is-not-numeric-index.js |   4 +-
 .../Get/detached-buffer-key-is-symbol.js      |   4 +-
 .../internals/Get/detached-buffer.js          |   4 +-
 .../internals/Get/indexed-value-sab.js        |   8 +-
 .../internals/Get/indexed-value.js            |   8 +-
 .../internals/Get/key-is-not-integer.js       |   4 +-
 .../internals/Get/key-is-not-minus-zero.js    |   4 +-
 .../internals/Get/key-is-not-numeric-index.js |   4 +-
 .../internals/Get/key-is-out-of-bounds.js     |   4 +-
 .../internals/Get/key-is-symbol.js            |   4 +-
 .../detached-buffer-key-is-not-number.js      |   4 +-
 .../detached-buffer-key-is-symbol.js          |   4 +-
 .../GetOwnProperty/index-prop-desc.js         |   8 +-
 .../GetOwnProperty/key-is-minus-zero.js       |   4 +-
 .../key-is-not-canonical-index.js             |   4 +-
 .../GetOwnProperty/key-is-not-integer.js      |   4 +-
 .../key-is-not-numeric-index.js               |   4 +-
 .../GetOwnProperty/key-is-out-of-bounds.js    |   4 +-
 .../internals/GetOwnProperty/key-is-symbol.js |   4 +-
 .../detached-buffer-key-is-not-number.js      |   4 +-
 .../detached-buffer-key-is-symbol.js          |   4 +-
 .../internals/HasProperty/indexed-value.js    |   4 +-
 .../HasProperty/key-is-not-canonical-index.js |   4 +-
 ...ger-indexes-and-string-and-symbol-keys-.js |   4 +-
 .../integer-indexes-and-string-keys.js        |   4 +-
 .../OwnPropertyKeys/integer-indexes.js        |   4 +-
 ...etached-buffer-key-is-not-numeric-index.js |   4 +-
 .../Set/detached-buffer-key-is-symbol.js      |   4 +-
 .../internals/Set/detached-buffer.js          |  16 +--
 .../internals/Set/indexed-value.js            |  12 +-
 .../internals/Set/key-is-minus-zero.js        |   4 +-
 .../Set/key-is-not-canonical-index.js         |   4 +-
 .../internals/Set/key-is-not-integer.js       |   4 +-
 .../internals/Set/key-is-not-numeric-index.js |   4 +-
 .../internals/Set/key-is-out-of-bounds.js     |   4 +-
 .../internals/Set/key-is-symbol.js            |   4 +-
 .../internals/Set/tonumber-value-throws.js    |   4 +-
 .../TypedArrays/length-arg-init-zeros.js      |  20 ++--
 .../length-arg-proto-from-ctor-realm.js       |   2 +-
 .../object-arg-as-array-returns.js            |   8 +-
 ...bject-arg-as-generator-iterable-returns.js |   8 +-
 .../object-arg-new-instance-extensibility.js  |  16 +--
 .../TypedArrays/object-arg-returns.js         |   4 +-
 .../object-arg-throws-from-property.js        |   4 +-
 ...rows-setting-obj-to-primitive-typeerror.js |   4 +-
 ...ect-arg-throws-setting-obj-to-primitive.js |   4 +-
 .../object-arg-throws-setting-obj-tostring.js |   4 +-
 ...rg-throws-setting-obj-valueof-typeerror.js |   4 +-
 .../object-arg-throws-setting-obj-valueof.js  |   4 +-
 .../object-arg-throws-setting-property.js     |   4 +-
 .../of/argument-number-value-throws.js        |  30 +++--
 .../of/custom-ctor-returns-other-instance.js  |   6 +-
 .../of/new-instance-using-custom-ctor.js      |  10 +-
 test/built-ins/TypedArrays/of/new-instance.js |  10 +-
 ...y-arg-other-ctor-returns-new-typedarray.js |   6 +-
 .../typedarray-arg-returns-new-instance.js    |   2 +-
 ...pedarray-arg-use-custom-proto-if-object.js |   2 +-
 ...ult-proto-if-custom-proto-is-not-object.js |   2 +-
 test/harness/testTypedArray.js                |   6 +
 300 files changed, 1623 insertions(+), 1513 deletions(-)

diff --git a/harness/testTypedArray.js b/harness/testTypedArray.js
index 2699214ca3..7f777b56ca 100644
--- a/harness/testTypedArray.js
+++ b/harness/testTypedArray.js
@@ -20,11 +20,22 @@ var typedArrayConstructors = [
   Uint8ClampedArray
 ];
 
+var numericTypedArrayConstructors = typedArrayConstructors.slice();
+
+if (typeof BigInt !== "undefined") {
+  typedArrayConstructors.push(BigInt64Array);
+  typedArrayConstructors.push(BigUint64Array);
+}
+
 /**
  * The %TypedArray% intrinsic constructor function.
  */
 var TypedArray = Object.getPrototypeOf(Int8Array);
 
+function convertToBigInt(x) {
+  return (Array.isArray(x)) ? x.map(convertToBigInt) : BigInt(x);
+}
+
 /**
  * Callback for testing a typed array constructor.
  *
@@ -41,9 +52,14 @@ var TypedArray = Object.getPrototypeOf(Int8Array);
 function testWithTypedArrayConstructors(f, selected) {
   var constructors = selected || typedArrayConstructors;
   for (var i = 0; i < constructors.length; ++i) {
+    var N = function(x) { return x; };
     var constructor = constructors[i];
+    if (constructor.name == "BigInt64Array" ||
+        constructor.name == "BigUint64Array") {
+      N = convertToBigInt;
+    }
     try {
-      f(constructor);
+      f(constructor, N);
     } catch (e) {
       e.message += " (Testing with " + constructor.name + ".)";
       throw e;
@@ -75,5 +91,5 @@ function testTypedArrayConversions(byteConversionValues, fn) {
       }
       fn(TA, value, exp, initial);
     });
-  });
+  }, numericTypedArrayConstructors);
 }
diff --git a/test/built-ins/TypedArray/prototype/copyWithin/coerced-values-end.js b/test/built-ins/TypedArray/prototype/copyWithin/coerced-values-end.js
index 1cd62be566..50f6de2c3f 100644
--- a/test/built-ins/TypedArray/prototype/copyWithin/coerced-values-end.js
+++ b/test/built-ins/TypedArray/prototype/copyWithin/coerced-values-end.js
@@ -26,51 +26,51 @@ info: |
 includes: [compareArray.js, testTypedArray.js]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin(1, 0, null),
-      [0, 1, 2, 3]
+      new TA(N([0, 1, 2, 3])).copyWithin(1, 0, null),
+      N([0, 1, 2, 3])
     ),
     'null value coerced to 0'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin(1, 0, NaN),
-      [0, 1, 2, 3]
+      new TA(N([0, 1, 2, 3])).copyWithin(1, 0, NaN),
+      N([0, 1, 2, 3])
     ),
     'NaN value coerced to 0'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin(1, 0, false),
-      [0, 1, 2, 3]
+      new TA(N([0, 1, 2, 3])).copyWithin(1, 0, false),
+      N([0, 1, 2, 3])
     ),
     'false value coerced to 0'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin(1, 0, true),
-      [0, 0, 2, 3]
+      new TA(N([0, 1, 2, 3])).copyWithin(1, 0, true),
+      N([0, 0, 2, 3])
     ),
     'true value coerced to 1'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin(1, 0, '-2'),
-      [0, 0, 1, 3]
+      new TA(N([0, 1, 2, 3])).copyWithin(1, 0, '-2'),
+      N([0, 0, 1, 3])
     ),
     'string "-2" value coerced to integer -2'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin(1, 0, -2.5),
-      [0, 0, 1, 3]
+      new TA(N([0, 1, 2, 3])).copyWithin(1, 0, -2.5),
+      N([0, 0, 1, 3])
     ),
     'float -2.5 value coerced to integer -2'
   );
diff --git a/test/built-ins/TypedArray/prototype/copyWithin/coerced-values-start.js b/test/built-ins/TypedArray/prototype/copyWithin/coerced-values-start.js
index 96819e3953..1fecbd46da 100644
--- a/test/built-ins/TypedArray/prototype/copyWithin/coerced-values-start.js
+++ b/test/built-ins/TypedArray/prototype/copyWithin/coerced-values-start.js
@@ -25,67 +25,67 @@ info: |
 includes: [compareArray.js, testTypedArray.js]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin(1, undefined),
-      [0, 0, 1, 2]
+      new TA(N([0, 1, 2, 3])).copyWithin(1, undefined),
+      N([0, 0, 1, 2])
     ),
     'undefined value coerced to 0'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin(1, false),
-      [0, 0, 1, 2]
+      new TA(N([0, 1, 2, 3])).copyWithin(1, false),
+      N([0, 0, 1, 2])
     ),
     'false value coerced to 0'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin(1, NaN),
-      [0, 0, 1, 2]
+      new TA(N([0, 1, 2, 3])).copyWithin(1, NaN),
+      N([0, 0, 1, 2])
     ),
     'NaN value coerced to 0'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin(1, null),
-      [0, 0, 1, 2]
+      new TA(N([0, 1, 2, 3])).copyWithin(1, null),
+      N([0, 0, 1, 2])
     ),
     'null value coerced to 0'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin(0, true),
-      [1, 2, 3, 3]
+      new TA(N([0, 1, 2, 3])).copyWithin(0, true),
+      N([1, 2, 3, 3])
     ),
     'true value coerced to 1'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin(0, '1'),
-      [1, 2, 3, 3]
+      new TA(N([0, 1, 2, 3])).copyWithin(0, '1'),
+      N([1, 2, 3, 3])
     ),
     'string "1" value coerced to 1'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin(1, 0.5),
-      [0, 0, 1, 2]
+      new TA(N([0, 1, 2, 3])).copyWithin(1, 0.5),
+      N([0, 0, 1, 2])
     ),
     '0.5 float value coerced to integer 0'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin(0, 1.5),
-      [1, 2, 3, 3]
+      new TA(N([0, 1, 2, 3])).copyWithin(0, 1.5),
+      N([1, 2, 3, 3])
     ),
     '1.5 float value coerced to integer 1'
   );
diff --git a/test/built-ins/TypedArray/prototype/copyWithin/coerced-values-target.js b/test/built-ins/TypedArray/prototype/copyWithin/coerced-values-target.js
index 8d0c2816d4..f49d147b26 100644
--- a/test/built-ins/TypedArray/prototype/copyWithin/coerced-values-target.js
+++ b/test/built-ins/TypedArray/prototype/copyWithin/coerced-values-target.js
@@ -25,67 +25,67 @@ info: |
 includes: [compareArray.js, testTypedArray.js]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin(undefined, 1),
-      [1, 2, 3, 3]
+      new TA(N([0, 1, 2, 3])).copyWithin(undefined, 1),
+      N([1, 2, 3, 3])
     ),
     'undefined value coerced to 0'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin(false, 1),
-      [1, 2, 3, 3]
+      new TA(N([0, 1, 2, 3])).copyWithin(false, 1),
+      N([1, 2, 3, 3])
     ),
     'false value coerced to 0'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin(NaN, 1),
-      [1, 2, 3, 3]
+      new TA(N([0, 1, 2, 3])).copyWithin(NaN, 1),
+      N([1, 2, 3, 3])
     ),
     'NaN value coerced to 0'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin(null, 1),
-      [1, 2, 3, 3]
+      new TA(N([0, 1, 2, 3])).copyWithin(null, 1),
+      N([1, 2, 3, 3])
     ),
     'null value coerced to 0'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin(true, 0),
-      [0, 0, 1, 2]
+      new TA(N([0, 1, 2, 3])).copyWithin(true, 0),
+      N([0, 0, 1, 2])
     ),
     'true value coerced to 1'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin('1', 0),
-      [0, 0, 1, 2]
+      new TA(N([0, 1, 2, 3])).copyWithin('1', 0),
+      N([0, 0, 1, 2])
     ),
     'string "1" value coerced to 1'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin(0.5, 1),
-      [1, 2, 3, 3]
+      new TA(N([0, 1, 2, 3])).copyWithin(0.5, 1),
+      N([1, 2, 3, 3])
     ),
     '0.5 float value coerced to integer 0'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin(1.5, 0),
-      [0, 0, 1, 2]
+      new TA(N([0, 1, 2, 3])).copyWithin(1.5, 0),
+      N([0, 0, 1, 2])
     ),
     '1.5 float value coerced to integer 1'
   );
diff --git a/test/built-ins/TypedArray/prototype/copyWithin/negative-end.js b/test/built-ins/TypedArray/prototype/copyWithin/negative-end.js
index 96c9823f8a..4d1bb72cfe 100644
--- a/test/built-ins/TypedArray/prototype/copyWithin/negative-end.js
+++ b/test/built-ins/TypedArray/prototype/copyWithin/negative-end.js
@@ -28,67 +28,67 @@ info: |
 includes: [compareArray.js, testTypedArray.js]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin(0, 1, -1),
-      [1, 2, 2, 3]
+      new TA(N([0, 1, 2, 3])).copyWithin(0, 1, -1),
+      N([1, 2, 2, 3])
     ),
     '[0, 1, 2, 3].copyWithin(0, 1, -1) -> [1, 2, 2, 3]'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3, 4]).copyWithin(2, 0, -1),
-      [0, 1, 0, 1, 2]
+      new TA(N([0, 1, 2, 3, 4])).copyWithin(2, 0, -1),
+      N([0, 1, 0, 1, 2])
     ),
     '[0, 1, 2, 3, 4].copyWithin(2, 0, -1) -> [0, 1, 0, 1, 2]'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3, 4]).copyWithin(1, 2, -2),
-      [0, 2, 2, 3, 4]
+      new TA(N([0, 1, 2, 3, 4])).copyWithin(1, 2, -2),
+      N([0, 2, 2, 3, 4])
     ),
     '[0, 1, 2, 3, 4].copyWithin(1, 2, -2) -> [0, 2, 2, 3, 4]'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin(0, -2, -1),
-      [2, 1, 2, 3]
+      new TA(N([0, 1, 2, 3])).copyWithin(0, -2, -1),
+      N([2, 1, 2, 3])
     ),
     '[0, 1, 2, 3].copyWithin(0, -2, -1) -> [2, 1, 2, 3]'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3, 4]).copyWithin(2, -2, -1),
-      [0, 1, 3, 3, 4]
+      new TA(N([0, 1, 2, 3, 4])).copyWithin(2, -2, -1),
+      N([0, 1, 3, 3, 4])
     ),
     '[0, 1, 2, 3, 4].copyWithin(2, -2, 1) -> [0, 1, 3, 3, 4]'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin(-3, -2, -1),
-      [0, 2, 2, 3]
+      new TA(N([0, 1, 2, 3])).copyWithin(-3, -2, -1),
+      N([0, 2, 2, 3])
     ),
     '[0, 1, 2, 3].copyWithin(-3, -2, -1) -> [0, 2, 2, 3]'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3, 4]).copyWithin(-2, -3, -1),
-      [0, 1, 2, 2, 3]
+      new TA(N([0, 1, 2, 3, 4])).copyWithin(-2, -3, -1),
+      N([0, 1, 2, 2, 3])
     ),
     '[0, 1, 2, 3, 4].copyWithin(-2, -3, -1) -> [0, 1, 2, 2, 3]'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3, 4]).copyWithin(-5, -2, -1),
-      [3, 1, 2, 3, 4]
+      new TA(N([0, 1, 2, 3, 4])).copyWithin(-5, -2, -1),
+      N([3, 1, 2, 3, 4])
     ),
     '[0, 1, 2, 3, 4].copyWithin(-5, -2, -1) -> [3, 1, 2, 3, 4]'
   );
diff --git a/test/built-ins/TypedArray/prototype/copyWithin/negative-out-of-bounds-end.js b/test/built-ins/TypedArray/prototype/copyWithin/negative-out-of-bounds-end.js
index 7c55118aa1..25ddbcf728 100644
--- a/test/built-ins/TypedArray/prototype/copyWithin/negative-out-of-bounds-end.js
+++ b/test/built-ins/TypedArray/prototype/copyWithin/negative-out-of-bounds-end.js
@@ -28,83 +28,83 @@ info: |
 includes: [compareArray.js, testTypedArray.js]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin(0, 1, -10),
-      [0, 1, 2, 3]
+      new TA(N([0, 1, 2, 3])).copyWithin(0, 1, -10),
+      N([0, 1, 2, 3])
     ),
     '[0, 1, 2, 3].copyWithin(0, 1, -10) -> [0, 1, 2, 3]'
   );
 
   assert(
     compareArray(
-      new TA([1, 2, 3, 4, 5]).copyWithin(0, 1, -Infinity),
-      [1, 2, 3, 4, 5]
+      new TA(N([1, 2, 3, 4, 5])).copyWithin(0, 1, -Infinity),
+      N([1, 2, 3, 4, 5])
     ),
     '[1, 2, 3, 4, 5].copyWithin(0, 1, -Infinity) -> [1, 2, 3, 4, 5]'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin(0, -2, -10),
-      [0, 1, 2, 3]
+      new TA(N([0, 1, 2, 3])).copyWithin(0, -2, -10),
+      N([0, 1, 2, 3])
     ),
     '[0, 1, 2, 3].copyWithin(0, -2, -10) -> [0, 1, 2, 3]'
   );
 
   assert(
     compareArray(
-      new TA([1, 2, 3, 4, 5]).copyWithin(0, -2, -Infinity),
-      [1, 2, 3, 4, 5]
+      new TA(N([1, 2, 3, 4, 5])).copyWithin(0, -2, -Infinity),
+      N([1, 2, 3, 4, 5])
     ),
     '[1, 2, 3, 4, 5].copyWithin(0, -2, -Infinity) -> [1, 2, 3, 4, 5]'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin(0, -9, -10),
-      [0, 1, 2, 3]
+      new TA(N([0, 1, 2, 3])).copyWithin(0, -9, -10),
+      N([0, 1, 2, 3])
     ),
     '[0, 1, 2, 3].copyWithin(0, -9, -10) -> [0, 1, 2, 3]'
   );
 
   assert(
     compareArray(
-      new TA([1, 2, 3, 4, 5]).copyWithin(0, -9, -Infinity),
-      [1, 2, 3, 4, 5]
+      new TA(N([1, 2, 3, 4, 5])).copyWithin(0, -9, -Infinity),
+      N([1, 2, 3, 4, 5])
     ),
     '[1, 2, 3, 4, 5].copyWithin(0, -9, -Infinity) -> [1, 2, 3, 4, 5]'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin(-3, -2, -10),
-      [0, 1, 2, 3]
+      new TA(N([0, 1, 2, 3])).copyWithin(-3, -2, -10),
+      N([0, 1, 2, 3])
     ),
     '[0, 1, 2, 3].copyWithin(-3, -2, -10) -> [0, 1, 2, 3]'
   );
 
   assert(
     compareArray(
-      new TA([1, 2, 3, 4, 5]).copyWithin(-3, -2, -Infinity),
-      [1, 2, 3, 4, 5]
+      new TA(N([1, 2, 3, 4, 5])).copyWithin(-3, -2, -Infinity),
+      N([1, 2, 3, 4, 5])
     ),
     '[1, 2, 3, 4, 5].copyWithin(-3, -2, -Infinity) -> [1, 2, 3, 4, 5]'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin(-7, -8, -9),
-      [0, 1, 2, 3]
+      new TA(N([0, 1, 2, 3])).copyWithin(-7, -8, -9),
+      N([0, 1, 2, 3])
     ),
     '[0, 1, 2, 3].copyWithin(-7, -8, -9) -> [0, 1, 2, 3]'
   );
 
   assert(
     compareArray(
-      new TA([1, 2, 3, 4, 5]).copyWithin(-7, -8, -Infinity),
-      [1, 2, 3, 4, 5]
+      new TA(N([1, 2, 3, 4, 5])).copyWithin(-7, -8, -Infinity),
+      N([1, 2, 3, 4, 5])
     ),
     '[1, 2, 3, 4, 5].copyWithin(-7, -8, -Infinity) -> [1, 2, 3, 4, 5]'
   );
diff --git a/test/built-ins/TypedArray/prototype/copyWithin/negative-out-of-bounds-start.js b/test/built-ins/TypedArray/prototype/copyWithin/negative-out-of-bounds-start.js
index 4fdc4eb12a..b439a5d2be 100644
--- a/test/built-ins/TypedArray/prototype/copyWithin/negative-out-of-bounds-start.js
+++ b/test/built-ins/TypedArray/prototype/copyWithin/negative-out-of-bounds-start.js
@@ -26,67 +26,67 @@ info: |
 includes: [compareArray.js, testTypedArray.js]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin(0, -10),
-      [0, 1, 2, 3]
+      new TA(N([0, 1, 2, 3])).copyWithin(0, -10),
+      N([0, 1, 2, 3])
     ),
     '[0, 1, 2, 3]).copyWithin(0, -10) -> [0, 1, 2, 3]'
   );
 
   assert(
     compareArray(
-      new TA([1, 2, 3, 4, 5]).copyWithin(0, -Infinity),
-      [1, 2, 3, 4, 5]
+      new TA(N([1, 2, 3, 4, 5])).copyWithin(0, -Infinity),
+      N([1, 2, 3, 4, 5])
     ),
     '[1, 2, 3, 4, 5]).copyWithin(0, -Infinity) -> [1, 2, 3, 4, 5]'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3, 4]).copyWithin(2, -10),
-      [0, 1, 0, 1, 2]
+      new TA(N([0, 1, 2, 3, 4])).copyWithin(2, -10),
+      N([0, 1, 0, 1, 2])
     ),
     '[0, 1, 2, 3, 4]).copyWithin(2, -2) -> [0, 1, 0, 1, 2]'
   );
 
   assert(
     compareArray(
-      new TA([1, 2, 3, 4, 5]).copyWithin(2, -Infinity),
-      [1, 2, 1, 2, 3]
+      new TA(N([1, 2, 3, 4, 5])).copyWithin(2, -Infinity),
+      N([1, 2, 1, 2, 3])
     ),
     '[1, 2, 3, 4, 5]).copyWithin(2, -Infinity) -> [1, 2, 1, 2, 3]'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3, 4]).copyWithin(10, -10),
-      [0, 1, 2, 3, 4]
+      new TA(N([0, 1, 2, 3, 4])).copyWithin(10, -10),
+      N([0, 1, 2, 3, 4])
     ),
     '[0, 1, 2, 3, 4]).copyWithin(10, -10) -> [0, 1, 2, 3, 4]'
   );
 
   assert(
     compareArray(
-      new TA([1, 2, 3, 4, 5]).copyWithin(10, -Infinity),
-      [1, 2, 3, 4, 5]
+      new TA(N([1, 2, 3, 4, 5])).copyWithin(10, -Infinity),
+      N([1, 2, 3, 4, 5])
     ),
     '[1, 2, 3, 4, 5]).copyWithin(10, -Infinity) -> [1, 2, 3, 4, 5]'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin(-9, -10),
-      [0, 1, 2, 3]
+      new TA(N([0, 1, 2, 3])).copyWithin(-9, -10),
+      N([0, 1, 2, 3])
     ),
     '[0, 1, 2, 3].copyWithin(-9, -10) -> [0, 1, 2, 3]'
   );
 
   assert(
     compareArray(
-      new TA([1, 2, 3, 4, 5]).copyWithin(-9, -Infinity),
-      [1, 2, 3, 4, 5]
+      new TA(N([1, 2, 3, 4, 5])).copyWithin(-9, -Infinity),
+      N([1, 2, 3, 4, 5])
     ),
     '[1, 2, 3, 4, 5].copyWithin(-9, -Infinity) -> [1, 2, 3, 4, 5]'
   );
diff --git a/test/built-ins/TypedArray/prototype/copyWithin/negative-out-of-bounds-target.js b/test/built-ins/TypedArray/prototype/copyWithin/negative-out-of-bounds-target.js
index dc46906d3d..da99b0918d 100644
--- a/test/built-ins/TypedArray/prototype/copyWithin/negative-out-of-bounds-target.js
+++ b/test/built-ins/TypedArray/prototype/copyWithin/negative-out-of-bounds-target.js
@@ -26,35 +26,35 @@ info: |
 includes: [compareArray.js, testTypedArray.js]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin(-10, 0),
-      [0, 1, 2, 3]
+      new TA(N([0, 1, 2, 3])).copyWithin(-10, 0),
+      N([0, 1, 2, 3])
     ),
     '[0, 1, 2, 3].copyWithin(-10, 0) -> [0, 1, 2, 3]'
   );
 
   assert(
     compareArray(
-      new TA([1, 2, 3, 4, 5]).copyWithin(-Infinity, 0),
-      [1, 2, 3, 4, 5]
+      new TA(N([1, 2, 3, 4, 5])).copyWithin(-Infinity, 0),
+      N([1, 2, 3, 4, 5])
     ),
     '[1, 2, 3, 4, 5].copyWithin(-Infinity, 0) -> [1, 2, 3, 4, 5]'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3, 4]).copyWithin(-10, 2),
-      [2, 3, 4, 3, 4]
+      new TA(N([0, 1, 2, 3, 4])).copyWithin(-10, 2),
+      N([2, 3, 4, 3, 4])
     ),
     '[0, 1, 2, 3, 4].copyWithin(-10, 2) -> [2, 3, 4, 3, 4]'
   );
 
   assert(
     compareArray(
-      new TA([1, 2, 3, 4, 5]).copyWithin(-Infinity, 2),
-      [3, 4, 5, 4, 5]
+      new TA(N([1, 2, 3, 4, 5])).copyWithin(-Infinity, 2),
+      N([3, 4, 5, 4, 5])
     ),
     '[1, 2, 3, 4, 5].copyWithin(-Infinity, 2) -> [3, 4, 5, 4, 5]'
   );
diff --git a/test/built-ins/TypedArray/prototype/copyWithin/negative-start.js b/test/built-ins/TypedArray/prototype/copyWithin/negative-start.js
index df73879d43..a5c12e04d3 100644
--- a/test/built-ins/TypedArray/prototype/copyWithin/negative-start.js
+++ b/test/built-ins/TypedArray/prototype/copyWithin/negative-start.js
@@ -26,51 +26,51 @@ info: |
 includes: [compareArray.js, testTypedArray.js]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin(0, -1),
-      [3, 1, 2, 3]
+      new TA(N([0, 1, 2, 3])).copyWithin(0, -1),
+      N([3, 1, 2, 3])
     ),
     '[0, 1, 2, 3].copyWithin(0, -1) -> [3, 1, 2, 3]'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3, 4]).copyWithin(2, -2),
-      [0, 1, 3, 4, 4]
+      new TA(N([0, 1, 2, 3, 4])).copyWithin(2, -2),
+      N([0, 1, 3, 4, 4])
     ),
     '[0, 1, 2, 3, 4].copyWithin(2, -2) -> [0, 1, 3, 4, 4]'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3, 4]).copyWithin(1, -2),
-      [0, 3, 4, 3, 4]
+      new TA(N([0, 1, 2, 3, 4])).copyWithin(1, -2),
+      N([0, 3, 4, 3, 4])
     ),
     '[0, 1, 2, 3, 4].copyWithin(1, -2) -> [0, 3, 4, 3, 4]'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin(-1, -2),
-      [0, 1, 2, 2]
+      new TA(N([0, 1, 2, 3])).copyWithin(-1, -2),
+      N([0, 1, 2, 2])
     ),
     '[0, 1, 2, 3].copyWithin(-1, -2) -> [ 0, 1, 2, 2 ]'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3, 4]).copyWithin(-2, -3),
-      [0, 1, 2, 2, 3]
+      new TA(N([0, 1, 2, 3, 4])).copyWithin(-2, -3),
+      N([0, 1, 2, 2, 3])
     ),
     '[0, 1, 2, 3, 4].copyWithin(-2, -3) -> [0, 1, 2, 2, 3]'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3, 4]).copyWithin(-5, -2),
-      [3, 4, 2, 3, 4]
+      new TA(N([0, 1, 2, 3, 4])).copyWithin(-5, -2),
+      N([3, 4, 2, 3, 4])
     ),
     '[0, 1, 2, 3, 4].copyWithin(-5, -2) -> [3, 4, 2, 3, 4]'
   );
diff --git a/test/built-ins/TypedArray/prototype/copyWithin/negative-target.js b/test/built-ins/TypedArray/prototype/copyWithin/negative-target.js
index dfc252b1e4..18760a102c 100644
--- a/test/built-ins/TypedArray/prototype/copyWithin/negative-target.js
+++ b/test/built-ins/TypedArray/prototype/copyWithin/negative-target.js
@@ -26,27 +26,27 @@ info: |
 includes: [compareArray.js, testTypedArray.js]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin(-1, 0),
-      [0, 1, 2, 0]
+      new TA(N([0, 1, 2, 3])).copyWithin(-1, 0),
+      N([0, 1, 2, 0])
     ),
     '[0, 1, 2, 3].copyWithin(-1, 0) -> [0, 1, 2, 0]'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3, 4]).copyWithin(-2, 2),
-      [0, 1, 2, 2, 3]
+      new TA(N([0, 1, 2, 3, 4])).copyWithin(-2, 2),
+      N([0, 1, 2, 2, 3])
     ),
     '[0, 1, 2, 3, 4].copyWithin(-2, 2) -> [0, 1, 2, 2, 3]'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin(-1, 2),
-      [0, 1, 2, 2]
+      new TA(N([0, 1, 2, 3])).copyWithin(-1, 2),
+      N([0, 1, 2, 2])
     ),
     '[0, 1, 2, 3].copyWithin(-1, 2) -> [0, 1, 2, 2]'
   );
diff --git a/test/built-ins/TypedArray/prototype/copyWithin/non-negative-out-of-bounds-end.js b/test/built-ins/TypedArray/prototype/copyWithin/non-negative-out-of-bounds-end.js
index 9767106c0f..ace11ebb5a 100644
--- a/test/built-ins/TypedArray/prototype/copyWithin/non-negative-out-of-bounds-end.js
+++ b/test/built-ins/TypedArray/prototype/copyWithin/non-negative-out-of-bounds-end.js
@@ -19,35 +19,35 @@ info: |
 includes: [compareArray.js, testTypedArray.js]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin(0, 1, 6),
-      [1, 2, 3, 3]
+      new TA(N([0, 1, 2, 3])).copyWithin(0, 1, 6),
+      N([1, 2, 3, 3])
     ),
     '[0, 1, 2, 3].copyWithin(0, 1, 6) -> [1, 2, 3, 3]'
   );
 
   assert(
     compareArray(
-      new TA([1, 2, 3, 4, 5]).copyWithin(0, 1, Infinity),
-      [2, 3, 4, 5, 5]
+      new TA(N([1, 2, 3, 4, 5])).copyWithin(0, 1, Infinity),
+      N([2, 3, 4, 5, 5])
     ),
     '[1, 2, 3, 4, 5].copyWithin(0, 1, Infinity) -> [2, 3, 4, 5, 5]'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3, 4, 5]).copyWithin(1, 3, 6),
-      [0, 3, 4, 5, 4, 5]
+      new TA(N([0, 1, 2, 3, 4, 5])).copyWithin(1, 3, 6),
+      N([0, 3, 4, 5, 4, 5])
     ),
     '[0, 1, 2, 3, 4, 5].copyWithin(1, 3, 6) -> [0, 3, 4, 5, 4, 5]'
   );
 
   assert(
     compareArray(
-      new TA([1, 2, 3, 4, 5]).copyWithin(1, 3, Infinity),
-      [1, 4, 5, 4, 5]
+      new TA(N([1, 2, 3, 4, 5])).copyWithin(1, 3, Infinity),
+      N([1, 4, 5, 4, 5])
     ),
     '[1, 2, 3, 4, 5].copyWithin(1, 3, Infinity) -> [1, 4, 5, 4, 5]'
   );
diff --git a/test/built-ins/TypedArray/prototype/copyWithin/non-negative-out-of-bounds-target-and-start.js b/test/built-ins/TypedArray/prototype/copyWithin/non-negative-out-of-bounds-target-and-start.js
index f1cc0504a1..878009f36c 100644
--- a/test/built-ins/TypedArray/prototype/copyWithin/non-negative-out-of-bounds-target-and-start.js
+++ b/test/built-ins/TypedArray/prototype/copyWithin/non-negative-out-of-bounds-target-and-start.js
@@ -19,55 +19,55 @@ info: |
 includes: [compareArray.js, testTypedArray.js]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   assert(
     compareArray(
-      new TA([0, 1, 2, 3, 4, 5]).copyWithin(6, 0),
-      [0, 1, 2, 3, 4, 5]
+      new TA(N([0, 1, 2, 3, 4, 5])).copyWithin(6, 0),
+      N([0, 1, 2, 3, 4, 5])
     )
   );
 
   assert(
     compareArray(
-      new TA([1, 2, 3, 4, 5]).copyWithin(Infinity, 0),
-      [1, 2, 3, 4, 5]
+      new TA(N([1, 2, 3, 4, 5])).copyWithin(Infinity, 0),
+      N([1, 2, 3, 4, 5])
     ),
     '[1, 2, 3, 4, 5].copyWithin(Infinity, 0) -> [1, 2, 3, 4, 5]'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3, 4, 5]).copyWithin(0, 6),
-      [0, 1, 2, 3, 4, 5]
+      new TA(N([0, 1, 2, 3, 4, 5])).copyWithin(0, 6),
+      N([0, 1, 2, 3, 4, 5])
     )
   );
 
   assert(
     compareArray(
-      new TA([1, 2, 3, 4, 5]).copyWithin(0, Infinity),
-      [1, 2, 3, 4, 5]
+      new TA(N([1, 2, 3, 4, 5])).copyWithin(0, Infinity),
+      N([1, 2, 3, 4, 5])
     ),
     '[1, 2, 3, 4, 5].copyWithin(0, Infinity) -> [1, 2, 3, 4, 5]'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3, 4, 5]).copyWithin(6, 6),
-      [0, 1, 2, 3, 4, 5]
+      new TA(N([0, 1, 2, 3, 4, 5])).copyWithin(6, 6),
+      N([0, 1, 2, 3, 4, 5])
     )
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3, 4, 5]).copyWithin(10, 10),
-      [0, 1, 2, 3, 4, 5]
+      new TA(N([0, 1, 2, 3, 4, 5])).copyWithin(10, 10),
+      N([0, 1, 2, 3, 4, 5])
     )
   );
 
   assert(
     compareArray(
-      new TA([1, 2, 3, 4, 5]).copyWithin(Infinity, Infinity),
-      [1, 2, 3, 4, 5]
+      new TA(N([1, 2, 3, 4, 5])).copyWithin(Infinity, Infinity),
+      N([1, 2, 3, 4, 5])
     ),
     '[1, 2, 3, 4, 5].copyWithin(Infinity, Infinity) -> [1, 2, 3, 4, 5]'
   );
diff --git a/test/built-ins/TypedArray/prototype/copyWithin/non-negative-target-and-start.js b/test/built-ins/TypedArray/prototype/copyWithin/non-negative-target-and-start.js
index 4dec6eff80..261223948d 100644
--- a/test/built-ins/TypedArray/prototype/copyWithin/non-negative-target-and-start.js
+++ b/test/built-ins/TypedArray/prototype/copyWithin/non-negative-target-and-start.js
@@ -19,32 +19,32 @@ info: |
 includes: [compareArray.js, testTypedArray.js]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   assert(
     compareArray(
-      new TA([1, 2, 3, 4, 5, 6]).copyWithin(0, 0),
-      [1, 2, 3, 4, 5, 6]
+      new TA(N([1, 2, 3, 4, 5, 6])).copyWithin(0, 0),
+      N([1, 2, 3, 4, 5, 6])
     )
   );
 
   assert(
     compareArray(
-      new TA([1, 2, 3, 4, 5, 6]).copyWithin(0, 2),
-      [3, 4, 5, 6, 5, 6]
+      new TA(N([1, 2, 3, 4, 5, 6])).copyWithin(0, 2),
+      N([3, 4, 5, 6, 5, 6])
     )
   );
 
   assert(
     compareArray(
-      new TA([1, 2, 3, 4, 5, 6]).copyWithin(3, 0),
-      [1, 2, 3, 1, 2, 3]
+      new TA(N([1, 2, 3, 4, 5, 6])).copyWithin(3, 0),
+      N([1, 2, 3, 1, 2, 3])
     )
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3, 4, 5]).copyWithin(1, 4),
-      [0, 4, 5, 3, 4, 5]
+      new TA(N([0, 1, 2, 3, 4, 5])).copyWithin(1, 4),
+      N([0, 4, 5, 3, 4, 5])
     )
   );
 });
diff --git a/test/built-ins/TypedArray/prototype/copyWithin/non-negative-target-start-and-end.js b/test/built-ins/TypedArray/prototype/copyWithin/non-negative-target-start-and-end.js
index c8cd09f17a..bbb794cc05 100644
--- a/test/built-ins/TypedArray/prototype/copyWithin/non-negative-target-start-and-end.js
+++ b/test/built-ins/TypedArray/prototype/copyWithin/non-negative-target-start-and-end.js
@@ -19,27 +19,27 @@ info: |
 includes: [compareArray.js, testTypedArray.js]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin(0, 0, 0),
-      [0, 1, 2, 3]
+      new TA(N([0, 1, 2, 3])).copyWithin(0, 0, 0),
+      N([0, 1, 2, 3])
     ),
     '[0, 1, 2, 3].copyWithin(0, 0, 0) -> [0, 1, 2, 3]'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin(0, 0, 2),
-      [0, 1, 2, 3]
+      new TA(N([0, 1, 2, 3])).copyWithin(0, 0, 2),
+      N([0, 1, 2, 3])
     ),
     '[0, 1, 2, 3].copyWithin(0, 0, 2) -> [0, 1, 2, 3]'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin(0, 1, 2),
-      [1, 1, 2, 3]
+      new TA(N([0, 1, 2, 3])).copyWithin(0, 1, 2),
+      N([1, 1, 2, 3])
     ),
     '[0, 1, 2, 3].copyWithin(0, 1, 2) -> [1, 1, 2, 3]'
   );
@@ -57,16 +57,16 @@ testWithTypedArrayConstructors(function(TA) {
    */
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin(1, 0, 2),
-      [0, 0, 1, 3]
+      new TA(N([0, 1, 2, 3])).copyWithin(1, 0, 2),
+      N([0, 0, 1, 3])
     ),
     '[0, 1, 2, 3].copyWithin(1, 0, 2) -> [0, 0, 1, 3]'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3, 4, 5]).copyWithin(1, 3, 5),
-      [0, 3, 4, 3, 4, 5]
+      new TA(N([0, 1, 2, 3, 4, 5])).copyWithin(1, 3, 5),
+      N([0, 3, 4, 3, 4, 5])
     ),
     '[0, 1, 2, 3, 4, 5].copyWithin(1, 3, 5) -> [0, 3, 4, 3, 4, 5]'
   );
diff --git a/test/built-ins/TypedArray/prototype/copyWithin/return-this.js b/test/built-ins/TypedArray/prototype/copyWithin/return-this.js
index c6ab41ced4..cf34d65830 100644
--- a/test/built-ins/TypedArray/prototype/copyWithin/return-this.js
+++ b/test/built-ins/TypedArray/prototype/copyWithin/return-this.js
@@ -24,13 +24,13 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample1 = new TA();
   var result1 = sample1.copyWithin(0, 0);
 
   assert.sameValue(result1, sample1);
 
-  var sample2 = new TA([1, 2, 3]);
+  var sample2 = new TA(N([1, 2, 3]));
   var result2 = sample2.copyWithin(1, 0);
 
   assert.sameValue(result2, sample2);
diff --git a/test/built-ins/TypedArray/prototype/copyWithin/undefined-end.js b/test/built-ins/TypedArray/prototype/copyWithin/undefined-end.js
index bd011026fa..4f00f0f333 100644
--- a/test/built-ins/TypedArray/prototype/copyWithin/undefined-end.js
+++ b/test/built-ins/TypedArray/prototype/copyWithin/undefined-end.js
@@ -26,19 +26,19 @@ info: |
 includes: [compareArray.js, testTypedArray.js]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin(0, 1, undefined),
-      [1, 2, 3, 3]
+      new TA(N([0, 1, 2, 3])).copyWithin(0, 1, undefined),
+      N([1, 2, 3, 3])
     ),
     '[0, 1, 2, 3].copyWithin(0, 1, undefined) -> [1, 2, 3]'
   );
 
   assert(
     compareArray(
-      new TA([0, 1, 2, 3]).copyWithin(0, 1),
-      [1, 2, 3, 3]
+      new TA(N([0, 1, 2, 3])).copyWithin(0, 1),
+      N([1, 2, 3, 3])
     ),
     '[0, 1, 2, 3].copyWithin(0, 1) -> [1, 2, 3, 3]'
   );
diff --git a/test/built-ins/TypedArray/prototype/entries/iter-prototype.js b/test/built-ins/TypedArray/prototype/entries/iter-prototype.js
index f8635fe577..bc16cf1f3f 100644
--- a/test/built-ins/TypedArray/prototype/entries/iter-prototype.js
+++ b/test/built-ins/TypedArray/prototype/entries/iter-prototype.js
@@ -17,8 +17,8 @@ features: [Symbol.iterator, TypedArray]
 
 var ArrayIteratorProto = Object.getPrototypeOf([][Symbol.iterator]());
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([0, 42, 64]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([0, 42, 64]));
   var iter = sample.entries();
 
   assert.sameValue(Object.getPrototypeOf(iter), ArrayIteratorProto);
diff --git a/test/built-ins/TypedArray/prototype/entries/return-itor.js b/test/built-ins/TypedArray/prototype/entries/return-itor.js
index a69d4404e2..d7db93696a 100644
--- a/test/built-ins/TypedArray/prototype/entries/return-itor.js
+++ b/test/built-ins/TypedArray/prototype/entries/return-itor.js
@@ -13,22 +13,22 @@ includes: [testTypedArray.js, compareArray.js]
 features: [TypedArray]
 ---*/
 
-var sample = new Int8Array([0, 42, 64]);
+var sample = [0, 42, 64];
 
-testWithTypedArrayConstructors(function(TA) {
-  var typedArray = new TA(sample);
+testWithTypedArrayConstructors(function(TA, N) {
+  var typedArray = new TA(N(sample));
   var itor = typedArray.entries();
 
   var next = itor.next();
-  assert(compareArray(next.value, [0, 0]));
+  assert(compareArray(next.value, [0, N(0)]));
   assert.sameValue(next.done, false);
 
   next = itor.next();
-  assert(compareArray(next.value, [1, 42]));
+  assert(compareArray(next.value, [1, N(42)]));
   assert.sameValue(next.done, false);
 
   next = itor.next();
-  assert(compareArray(next.value, [2, 64]));
+  assert(compareArray(next.value, [2, N(64)]));
   assert.sameValue(next.done, false);
 
   next = itor.next();
diff --git a/test/built-ins/TypedArray/prototype/every/callbackfn-arguments-with-thisarg.js b/test/built-ins/TypedArray/prototype/every/callbackfn-arguments-with-thisarg.js
index 548fa2602a..703db4713b 100644
--- a/test/built-ins/TypedArray/prototype/every/callbackfn-arguments-with-thisarg.js
+++ b/test/built-ins/TypedArray/prototype/every/callbackfn-arguments-with-thisarg.js
@@ -25,8 +25,8 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43, 44]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43, 44]));
 
   var results = [];
   var thisArg = ["test262", 0, "ecma262", 0];
@@ -40,17 +40,17 @@ testWithTypedArrayConstructors(function(TA) {
   assert.sameValue(thisArg.length, 4, "thisArg.length");
 
   assert.sameValue(results[0].length, 3, "results[0].length");
-  assert.sameValue(results[0][0], 42, "results[0][0] - kValue");
+  assert.sameValue(results[0][0], N(42), "results[0][0] - kValue");
   assert.sameValue(results[0][1], 0, "results[0][1] - k");
   assert.sameValue(results[0][2], sample, "results[0][2] - this");
 
   assert.sameValue(results[1].length, 3, "results[1].length");
-  assert.sameValue(results[1][0], 43, "results[1][0] - kValue");
+  assert.sameValue(results[1][0], N(43), "results[1][0] - kValue");
   assert.sameValue(results[1][1], 1, "results[1][1] - k");
   assert.sameValue(results[1][2], sample, "results[1][2] - this");
 
   assert.sameValue(results[2].length, 3, "results[2].length");
-  assert.sameValue(results[2][0], 44, "results[2][0] - kValue");
+  assert.sameValue(results[2][0], N(44), "results[2][0] - kValue");
   assert.sameValue(results[2][1], 2, "results[2][1] - k");
   assert.sameValue(results[2][2], sample, "results[2][2] - this");
 });
diff --git a/test/built-ins/TypedArray/prototype/every/callbackfn-arguments-without-thisarg.js b/test/built-ins/TypedArray/prototype/every/callbackfn-arguments-without-thisarg.js
index 5c3a746890..033e54eacc 100644
--- a/test/built-ins/TypedArray/prototype/every/callbackfn-arguments-without-thisarg.js
+++ b/test/built-ins/TypedArray/prototype/every/callbackfn-arguments-without-thisarg.js
@@ -25,8 +25,8 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43, 44]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43, 44]));
 
   var results = [];
 
@@ -38,17 +38,17 @@ testWithTypedArrayConstructors(function(TA) {
   assert.sameValue(results.length, 3, "results.length");
 
   assert.sameValue(results[0].length, 3, "results[0].length");
-  assert.sameValue(results[0][0], 42, "results[0][0] - kValue");
+  assert.sameValue(results[0][0], N(42), "results[0][0] - kValue");
   assert.sameValue(results[0][1], 0, "results[0][1] - k");
   assert.sameValue(results[0][2], sample, "results[0][2] - this");
 
   assert.sameValue(results[1].length, 3, "results[1].length");
-  assert.sameValue(results[1][0], 43, "results[1][0] - kValue");
+  assert.sameValue(results[1][0], N(43), "results[1][0] - kValue");
   assert.sameValue(results[1][1], 1, "results[1][1] - k");
   assert.sameValue(results[1][2], sample, "results[1][2] - this");
 
   assert.sameValue(results[2].length, 3, "results[2].length");
-  assert.sameValue(results[2][0], 44, "results[2][0] - kValue");
+  assert.sameValue(results[2][0], N(44), "results[2][0] - kValue");
   assert.sameValue(results[2][1], 2, "results[2][1] - k");
   assert.sameValue(results[2][2], sample, "results[2][2] - this");
 });
diff --git a/test/built-ins/TypedArray/prototype/every/callbackfn-no-interaction-over-non-integer.js b/test/built-ins/TypedArray/prototype/every/callbackfn-no-interaction-over-non-integer.js
index cfd6aa77ee..3631c549e7 100644
--- a/test/built-ins/TypedArray/prototype/every/callbackfn-no-interaction-over-non-integer.js
+++ b/test/built-ins/TypedArray/prototype/every/callbackfn-no-interaction-over-non-integer.js
@@ -18,8 +18,8 @@ includes: [testTypedArray.js]
 features: [Symbol, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([7, 8]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([7, 8]));
 
   var results = [];
 
@@ -36,6 +36,6 @@ testWithTypedArrayConstructors(function(TA) {
   assert.sameValue(results[0][1], 0, "results[0][1] - key");
   assert.sameValue(results[1][1], 1, "results[1][1] - key");
 
-  assert.sameValue(results[0][0], 7, "results[0][0] - value");
-  assert.sameValue(results[1][0], 8, "results[1][0] - value");
+  assert.sameValue(results[0][0], N(7), "results[0][0] - value");
+  assert.sameValue(results[1][0], N(8), "results[1][0] - value");
 });
diff --git a/test/built-ins/TypedArray/prototype/every/callbackfn-return-does-not-change-instance.js b/test/built-ins/TypedArray/prototype/every/callbackfn-return-does-not-change-instance.js
index 5eeb597c99..c882314fe2 100644
--- a/test/built-ins/TypedArray/prototype/every/callbackfn-return-does-not-change-instance.js
+++ b/test/built-ins/TypedArray/prototype/every/callbackfn-return-does-not-change-instance.js
@@ -25,14 +25,14 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([40, 41, 42]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([40, 41, 42]));
 
   sample.every(function() {
     return 43;
   });
 
-  assert.sameValue(sample[0], 40, "[0] == 40");
-  assert.sameValue(sample[1], 41, "[1] == 41");
-  assert.sameValue(sample[2], 42, "[2] == 42");
+  assert.sameValue(sample[0], N(40), "[0] == 40");
+  assert.sameValue(sample[1], N(41), "[1] == 41");
+  assert.sameValue(sample[2], N(42), "[2] == 42");
 });
diff --git a/test/built-ins/TypedArray/prototype/every/callbackfn-set-value-during-interaction.js b/test/built-ins/TypedArray/prototype/every/callbackfn-set-value-during-interaction.js
index 3b8f537e14..290a3fd694 100644
--- a/test/built-ins/TypedArray/prototype/every/callbackfn-set-value-during-interaction.js
+++ b/test/built-ins/TypedArray/prototype/every/callbackfn-set-value-during-interaction.js
@@ -25,24 +25,24 @@ includes: [testTypedArray.js]
 features: [Reflect.set, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43, 44]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43, 44]));
   var newVal = 0;
 
   sample.every(function(val, i) {
     if (i > 0) {
       assert.sameValue(
-        sample[i - 1], newVal - 1,
+        sample[i - 1], N(newVal - 1),
         "get the changed value during the loop"
       );
       assert.sameValue(
-        Reflect.set(sample, 0, 7),
+        Reflect.set(sample, 0, N(7)),
         true,
         "re-set a value for sample[0]"
       );
     }
     assert.sameValue(
-      Reflect.set(sample, i, newVal),
+      Reflect.set(sample, i, N(newVal)),
       true,
       "set value during iteration"
     );
@@ -52,7 +52,7 @@ testWithTypedArrayConstructors(function(TA) {
     return true;
   });
 
-  assert.sameValue(sample[0], 7, "changed values after iteration [0] == 7");
-  assert.sameValue(sample[1], 1, "changed values after iteration [1] == 1");
-  assert.sameValue(sample[2], 2, "changed values after iteration [2] == 2");
+  assert.sameValue(sample[0], N(7), "changed values after iteration [0] == 7");
+  assert.sameValue(sample[1], N(1), "changed values after iteration [1] == 1");
+  assert.sameValue(sample[2], N(2), "changed values after iteration [2] == 2");
 });
diff --git a/test/built-ins/TypedArray/prototype/every/get-length-uses-internal-arraylength.js b/test/built-ins/TypedArray/prototype/every/get-length-uses-internal-arraylength.js
index e7bbae8fcd..7101f75c64 100644
--- a/test/built-ins/TypedArray/prototype/every/get-length-uses-internal-arraylength.js
+++ b/test/built-ins/TypedArray/prototype/every/get-length-uses-internal-arraylength.js
@@ -30,8 +30,8 @@ var desc = {
 
 Object.defineProperty(TypedArray.prototype, "length", desc);
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43]));
   var calls = 0;
 
   Object.defineProperty(TA.prototype, "length", desc);
diff --git a/test/built-ins/TypedArray/prototype/every/values-are-not-cached.js b/test/built-ins/TypedArray/prototype/every/values-are-not-cached.js
index d9afa33bb7..e9cec7b7fa 100644
--- a/test/built-ins/TypedArray/prototype/every/values-are-not-cached.js
+++ b/test/built-ins/TypedArray/prototype/every/values-are-not-cached.js
@@ -26,16 +26,16 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43, 44]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43, 44]));
 
   sample.every(function(v, i) {
     if (i < sample.length - 1) {
-      sample[i+1] = 42;
+      sample[i+1] = N(42);
     }
 
     assert.sameValue(
-      v, 42, "method does not cache values before callbackfn calls"
+      v, N(42), "method does not cache values before callbackfn calls"
     );
     return true;
   });
diff --git a/test/built-ins/TypedArray/prototype/fill/coerced-indexes.js b/test/built-ins/TypedArray/prototype/fill/coerced-indexes.js
index 352a91d1a7..1fb4c00de9 100644
--- a/test/built-ins/TypedArray/prototype/fill/coerced-indexes.js
+++ b/test/built-ins/TypedArray/prototype/fill/coerced-indexes.js
@@ -31,74 +31,74 @@ info: |
 includes: [compareArray.js, testTypedArray.js]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   assert(
-    compareArray(new TA([0, 0]).fill(1, undefined), [1, 1]),
+    compareArray(new TA(N([0, 0])).fill(N(1), undefined), N([1, 1])),
     '`undefined` start coerced to 0'
   );
 
   assert(
-    compareArray(new TA([0, 0]).fill(1, 0, undefined), [1, 1]),
+    compareArray(new TA(N([0, 0])).fill(N(1), 0, undefined), N([1, 1])),
     'If end is undefined, let relativeEnd be len'
   );
 
   assert(
-    compareArray(new TA([0, 0]).fill(1, null), [1, 1]),
+    compareArray(new TA(N([0, 0])).fill(N(1), null), N([1, 1])),
     '`null` start coerced to 0'
   );
 
   assert(
-    compareArray(new TA([0, 0]).fill(1, 0, null), [0, 0]),
+    compareArray(new TA(N([0, 0])).fill(N(1), 0, null), N([0, 0])),
     '`null` end coerced to 0'
   );
 
   assert(
-    compareArray(new TA([0, 0]).fill(1, true), [0, 1]),
+    compareArray(new TA(N([0, 0])).fill(N(1), true), N([0, 1])),
     '`true` start coerced to 1'
   );
 
   assert(
-    compareArray(new TA([0, 0]).fill(1, 0, true), [1, 0]),
+    compareArray(new TA(N([0, 0])).fill(N(1), 0, true), N([1, 0])),
     '`true` end coerced to 1'
   );
 
   assert(
-    compareArray(new TA([0, 0]).fill(1, false), [1, 1]),
+    compareArray(new TA(N([0, 0])).fill(N(1), false), N([1, 1])),
     '`false` start coerced to 0'
   );
 
   assert(
-    compareArray(new TA([0, 0]).fill(1, 0, false), [0, 0]),
+    compareArray(new TA(N([0, 0])).fill(N(1), 0, false), N([0, 0])),
     '`false` end coerced to 0'
   );
 
   assert(
-    compareArray(new TA([0, 0]).fill(1, NaN), [1, 1]),
+    compareArray(new TA(N([0, 0])).fill(N(1), NaN), N([1, 1])),
     '`NaN` start coerced to 0'
   );
 
   assert(
-    compareArray(new TA([0, 0]).fill(1, 0, NaN), [0, 0]),
+    compareArray(new TA(N([0, 0])).fill(N(1), 0, NaN), N([0, 0])),
     '`NaN` end coerced to 0'
   );
 
   assert(
-    compareArray(new TA([0, 0]).fill(1, '1'), [0, 1]),
+    compareArray(new TA(N([0, 0])).fill(N(1), '1'), N([0, 1])),
     'string start coerced'
   );
 
   assert(
-    compareArray(new TA([0, 0]).fill(1, 0, '1'), [1, 0]),
+    compareArray(new TA(N([0, 0])).fill(N(1), 0, '1'), N([1, 0])),
     'string end coerced'
   );
 
   assert(
-    compareArray(new TA([0, 0]).fill(1, 1.5), [0, 1]),
+    compareArray(new TA(N([0, 0])).fill(N(1), 1.5), N([0, 1])),
     'start as a float number coerced'
   );
 
   assert(
-    compareArray(new TA([0, 0]).fill(1, 0, 1.5), [1, 0]),
+    compareArray(new TA(N([0, 0])).fill(N(1), 0, 1.5), N([1, 0])),
     'end as a float number coerced'
   );
 });
diff --git a/test/built-ins/TypedArray/prototype/fill/fill-values-conversion-once.js b/test/built-ins/TypedArray/prototype/fill/fill-values-conversion-once.js
index f5e1bd6b7e..4237c8061b 100644
--- a/test/built-ins/TypedArray/prototype/fill/fill-values-conversion-once.js
+++ b/test/built-ins/TypedArray/prototype/fill/fill-values-conversion-once.js
@@ -14,14 +14,14 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample = new TA(2);
 
   var n = 1;
-  sample.fill({ valueOf() { return n++; } });
+  sample.fill({ valueOf() { return N(n++); } });
 
   assert.sameValue(n, 2, "additional unexpected ToNumber() calls");
-  assert.sameValue(sample[0], 1, "incorrect ToNumber result in index 0");
-  assert.sameValue(sample[1], 1, "incorrect ToNumber result in index 1");
+  assert.sameValue(sample[0], N(1), "incorrect ToNumber result in index 0");
+  assert.sameValue(sample[1], N(1), "incorrect ToNumber result in index 1");
 });
 
diff --git a/test/built-ins/TypedArray/prototype/fill/fill-values-custom-start-and-end.js b/test/built-ins/TypedArray/prototype/fill/fill-values-custom-start-and-end.js
index 8db9082d48..836a0986fc 100644
--- a/test/built-ins/TypedArray/prototype/fill/fill-values-custom-start-and-end.js
+++ b/test/built-ins/TypedArray/prototype/fill/fill-values-custom-start-and-end.js
@@ -33,10 +33,10 @@ info: |
 includes: [compareArray.js, testTypedArray.js]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  assert(compareArray(new TA([0, 0, 0]).fill(8, 1, 2), [0, 8, 0]));
-  assert(compareArray(new TA([0, 0, 0, 0, 0]).fill(8, -3, 4), [0, 0, 8, 8, 0]));
-  assert(compareArray(new TA([0, 0, 0, 0, 0]).fill(8, -2, -1), [0, 0, 0, 8, 0]));
-  assert(compareArray(new TA([0, 0, 0, 0, 0]).fill(8, -1, -3), [0, 0, 0, 0, 0]));
-  assert(compareArray(new TA([0, 0, 0, 0, 0]).fill(8, 1, 3), [0, 8, 8, 0, 0]));
+testWithTypedArrayConstructors(function(TA, N) {
+  assert(compareArray(new TA(N([0, 0, 0])).fill(N(8), 1, 2), N([0, 8, 0])));
+  assert(compareArray(new TA(N([0, 0, 0, 0, 0])).fill(N(8), -3, 4), N([0, 0, 8, 8, 0])));
+  assert(compareArray(new TA(N([0, 0, 0, 0, 0])).fill(N(8), -2, -1), N([0, 0, 0, 8, 0])));
+  assert(compareArray(new TA(N([0, 0, 0, 0, 0])).fill(N(8), -1, -3), N([0, 0, 0, 0, 0])));
+  assert(compareArray(new TA(N([0, 0, 0, 0, 0])).fill(N(8), 1, 3), N([0, 8, 8, 0, 0])));
 });
diff --git a/test/built-ins/TypedArray/prototype/fill/fill-values-non-numeric.js b/test/built-ins/TypedArray/prototype/fill/fill-values-non-numeric.js
index 1d8cd4b6a5..0b935fd441 100644
--- a/test/built-ins/TypedArray/prototype/fill/fill-values-non-numeric.js
+++ b/test/built-ins/TypedArray/prototype/fill/fill-values-non-numeric.js
@@ -37,41 +37,43 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample;
 
-  sample = new TA([42]);
-  sample.fill(null);
-  assert.sameValue(sample[0], 0, "null => 0");
+  if (numericTypedArrayConstructors.includes(TA)) {
+    sample = new TA(N([42]));
+    sample.fill(null);
+    assert.sameValue(sample[0], 0, "null => 0");
+  }
 
-  sample = new TA([42]);
+  sample = new TA(N([42]));
   sample.fill(false);
-  assert.sameValue(sample[0], 0, "false => 0");
+  assert.sameValue(sample[0], N(0), "false => 0");
 
-  sample = new TA([42]);
+  sample = new TA(N([42]));
   sample.fill(true);
-  assert.sameValue(sample[0], 1, "true => 1");
+  assert.sameValue(sample[0], N(1), "true => 1");
 
-  sample = new TA([42]);
+  sample = new TA(N([42]));
   sample.fill("7");
-  assert.sameValue(sample[0], 7, "string conversion");
+  assert.sameValue(sample[0], N(7), "string conversion");
 
-  sample = new TA([42]);
+  sample = new TA(N([42]));
   sample.fill({
     toString: function() {
-      return 1;
+      return "1";
     },
     valueOf: function() {
-      return 7; 
+      return N(7);
     }
   });
-  assert.sameValue(sample[0], 7, "object valueOf conversion before toString");
+  assert.sameValue(sample[0], N(7), "object valueOf conversion before toString");
 
-  sample = new TA([42]);
+  sample = new TA(N([42]));
   sample.fill({
     toString: function() {
-      return 7;
+      return "7";
     }
   });
-  assert.sameValue(sample[0], 7, "object toString when valueOf is absent");
+  assert.sameValue(sample[0], N(7), "object toString when valueOf is absent");
 });
diff --git a/test/built-ins/TypedArray/prototype/fill/fill-values-relative-end.js b/test/built-ins/TypedArray/prototype/fill/fill-values-relative-end.js
index fe0b82d755..786169b34f 100644
--- a/test/built-ins/TypedArray/prototype/fill/fill-values-relative-end.js
+++ b/test/built-ins/TypedArray/prototype/fill/fill-values-relative-end.js
@@ -30,24 +30,24 @@ info: |
 includes: [compareArray.js, testTypedArray.js]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   assert(
-    compareArray(new TA([0, 0, 0]).fill(8, 0, 1), [8, 0, 0]),
+    compareArray(new TA(N([0, 0, 0])).fill(N(8), 0, 1), N([8, 0, 0])),
     "Fill elements from custom end position"
   );
 
   assert(
-    compareArray(new TA([0, 0, 0]).fill(8, 0, -1), [8, 8, 0]),
+    compareArray(new TA(N([0, 0, 0])).fill(N(8), 0, -1), N([8, 8, 0])),
     "negative end sets final position to max((length + relativeEnd), 0)"
   );
 
   assert(
-    compareArray(new TA([0, 0, 0]).fill(8, 0, 5), [8, 8, 8]),
+    compareArray(new TA(N([0, 0, 0])).fill(N(8), 0, 5), N([8, 8, 8])),
     "end position is never higher than of length"
   );
 
   assert(
-    compareArray(new TA([0, 0, 0]).fill(8, 0, -4), [0, 0, 0]),
+    compareArray(new TA(N([0, 0, 0])).fill(N(8), 0, -4), N([0, 0, 0])),
     "end position is 0 when (len + relativeEnd) < 0"
   );
 });
diff --git a/test/built-ins/TypedArray/prototype/fill/fill-values-relative-start.js b/test/built-ins/TypedArray/prototype/fill/fill-values-relative-start.js
index 68ca82f003..4a9f38799f 100644
--- a/test/built-ins/TypedArray/prototype/fill/fill-values-relative-start.js
+++ b/test/built-ins/TypedArray/prototype/fill/fill-values-relative-start.js
@@ -28,24 +28,24 @@ info: |
 includes: [compareArray.js, testTypedArray.js]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   assert(
-    compareArray(new TA([0, 0, 0]).fill(8, 1), [0, 8, 8]),
+    compareArray(new TA(N([0, 0, 0])).fill(N(8), 1), N([0, 8, 8])),
     "Fill elements from custom start position"
   );
 
   assert(
-    compareArray(new TA([0, 0, 0]).fill(8, 4), [0, 0, 0]),
+    compareArray(new TA(N([0, 0, 0])).fill(N(8), 4), N([0, 0, 0])),
     "start position is never higher than length"
   );
 
   assert(
-    compareArray(new TA([0, 0, 0]).fill(8, -1), [0, 0, 8]),
+    compareArray(new TA(N([0, 0, 0])).fill(N(8), -1), N([0, 0, 8])),
     "start < 0 sets initial position to max((len + relativeStart), 0)"
   );
 
   assert(
-    compareArray(new TA([0, 0, 0]).fill(8, -5), [8, 8, 8]),
+    compareArray(new TA(N([0, 0, 0])).fill(N(8), -5), N([8, 8, 8])),
     "start position is 0 when (len + relativeStart) < 0"
   );
 });
diff --git a/test/built-ins/TypedArray/prototype/fill/fill-values.js b/test/built-ins/TypedArray/prototype/fill/fill-values.js
index 70da31da6a..0f3ceddf5e 100644
--- a/test/built-ins/TypedArray/prototype/fill/fill-values.js
+++ b/test/built-ins/TypedArray/prototype/fill/fill-values.js
@@ -28,17 +28,17 @@ info: |
 includes: [compareArray.js, testTypedArray.js]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   assert(
     compareArray(
-      new TA().fill(8),
+      new TA().fill(N(8)),
       []
     ),
     "does not fill an empty instance"
   );
 
   assert(
-    compareArray(new TA([0, 0, 0]).fill(8), [8, 8, 8]),
+    compareArray(new TA(N([0, 0, 0])).fill(N(8)), N([8, 8, 8])),
     "Default start and end indexes are 0 and this.length"
   );
 });
diff --git a/test/built-ins/TypedArray/prototype/fill/get-length-ignores-length-prop.js b/test/built-ins/TypedArray/prototype/fill/get-length-ignores-length-prop.js
index d3d9723d25..b0432cb2a0 100644
--- a/test/built-ins/TypedArray/prototype/fill/get-length-ignores-length-prop.js
+++ b/test/built-ins/TypedArray/prototype/fill/get-length-ignores-length-prop.js
@@ -34,7 +34,7 @@ Object.defineProperty(TypedArray.prototype, "length", {
   }
 });
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   Object.defineProperty(TA.prototype, "length", {
     get: function() {
       throw new Test262Error();
@@ -48,5 +48,5 @@ testWithTypedArrayConstructors(function(TA) {
     }
   });
 
-  assert.sameValue(sample.fill(1, 0), sample);
+  assert.sameValue(sample.fill(N(1), 0), sample);
 });
diff --git a/test/built-ins/TypedArray/prototype/fill/return-abrupt-from-end.js b/test/built-ins/TypedArray/prototype/fill/return-abrupt-from-end.js
index 7a90c2888f..f50c840d7a 100644
--- a/test/built-ins/TypedArray/prototype/fill/return-abrupt-from-end.js
+++ b/test/built-ins/TypedArray/prototype/fill/return-abrupt-from-end.js
@@ -35,9 +35,9 @@ var end = {
   }
 };
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample = new TA();
   assert.throws(Test262Error, function() {
-    sample.fill(1, 0, end);
+    sample.fill(N(1), 0, end);
   });
 });
diff --git a/test/built-ins/TypedArray/prototype/fill/return-abrupt-from-set-value.js b/test/built-ins/TypedArray/prototype/fill/return-abrupt-from-set-value.js
index d57b5189c7..207b67a7e9 100644
--- a/test/built-ins/TypedArray/prototype/fill/return-abrupt-from-set-value.js
+++ b/test/built-ins/TypedArray/prototype/fill/return-abrupt-from-set-value.js
@@ -37,8 +37,8 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42]));
   var obj = {
     valueOf: function() {
       throw new Test262Error();
diff --git a/test/built-ins/TypedArray/prototype/fill/return-abrupt-from-start.js b/test/built-ins/TypedArray/prototype/fill/return-abrupt-from-start.js
index 5e4ac67a14..6f3dc40700 100644
--- a/test/built-ins/TypedArray/prototype/fill/return-abrupt-from-start.js
+++ b/test/built-ins/TypedArray/prototype/fill/return-abrupt-from-start.js
@@ -34,9 +34,9 @@ var start = {
   }
 };
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample = new TA();
   assert.throws(Test262Error, function() {
-    sample.fill(1, start);
+    sample.fill(N(1), start);
   });
 });
diff --git a/test/built-ins/TypedArray/prototype/fill/return-this.js b/test/built-ins/TypedArray/prototype/fill/return-this.js
index 38c91d71a2..b920053a5a 100644
--- a/test/built-ins/TypedArray/prototype/fill/return-this.js
+++ b/test/built-ins/TypedArray/prototype/fill/return-this.js
@@ -9,13 +9,13 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample1 = new TA();
-  var result1 = sample1.fill(1);
+  var result1 = sample1.fill(N(1));
 
   assert.sameValue(result1, sample1);
 
   var sample2 = new TA(42);
-  var result2 = sample2.fill(7);
+  var result2 = sample2.fill(N(7));
   assert.sameValue(result2, sample2);
 });
diff --git a/test/built-ins/TypedArray/prototype/filter/callbackfn-arguments-with-thisarg.js b/test/built-ins/TypedArray/prototype/filter/callbackfn-arguments-with-thisarg.js
index ea90d12a05..d16a5e361e 100644
--- a/test/built-ins/TypedArray/prototype/filter/callbackfn-arguments-with-thisarg.js
+++ b/test/built-ins/TypedArray/prototype/filter/callbackfn-arguments-with-thisarg.js
@@ -16,8 +16,8 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43, 44]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43, 44]));
 
   var results = [];
   var thisArg = ["test262", 0, "ecma262", 0];
@@ -30,17 +30,17 @@ testWithTypedArrayConstructors(function(TA) {
   assert.sameValue(thisArg.length, 4, "thisArg.length");
 
   assert.sameValue(results[0].length, 3, "results[0].length");
-  assert.sameValue(results[0][0], 42, "results[0][0] - kValue");
+  assert.sameValue(results[0][0], N(42), "results[0][0] - kValue");
   assert.sameValue(results[0][1], 0, "results[0][1] - k");
   assert.sameValue(results[0][2], sample, "results[0][2] - this");
 
   assert.sameValue(results[1].length, 3, "results[1].length");
-  assert.sameValue(results[1][0], 43, "results[1][0] - kValue");
+  assert.sameValue(results[1][0], N(43), "results[1][0] - kValue");
   assert.sameValue(results[1][1], 1, "results[1][1] - k");
   assert.sameValue(results[1][2], sample, "results[1][2] - this");
 
   assert.sameValue(results[2].length, 3, "results[2].length");
-  assert.sameValue(results[2][0], 44, "results[2][0] - kValue");
+  assert.sameValue(results[2][0], N(44), "results[2][0] - kValue");
   assert.sameValue(results[2][1], 2, "results[2][1] - k");
   assert.sameValue(results[2][2], sample, "results[2][2] - this");
 });
diff --git a/test/built-ins/TypedArray/prototype/filter/callbackfn-arguments-without-thisarg.js b/test/built-ins/TypedArray/prototype/filter/callbackfn-arguments-without-thisarg.js
index 557107c93f..95a30a38e6 100644
--- a/test/built-ins/TypedArray/prototype/filter/callbackfn-arguments-without-thisarg.js
+++ b/test/built-ins/TypedArray/prototype/filter/callbackfn-arguments-without-thisarg.js
@@ -16,8 +16,8 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43, 44]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43, 44]));
 
   var results = [];
 
@@ -28,17 +28,17 @@ testWithTypedArrayConstructors(function(TA) {
   assert.sameValue(results.length, 3, "results.length");
 
   assert.sameValue(results[0].length, 3, "results[0].length");
-  assert.sameValue(results[0][0], 42, "results[0][0] - kValue");
+  assert.sameValue(results[0][0], N(42), "results[0][0] - kValue");
   assert.sameValue(results[0][1], 0, "results[0][1] - k");
   assert.sameValue(results[0][2], sample, "results[0][2] - this");
 
   assert.sameValue(results[1].length, 3, "results[1].length");
-  assert.sameValue(results[1][0], 43, "results[1][0] - kValue");
+  assert.sameValue(results[1][0], N(43), "results[1][0] - kValue");
   assert.sameValue(results[1][1], 1, "results[1][1] - k");
   assert.sameValue(results[1][2], sample, "results[1][2] - this");
 
   assert.sameValue(results[2].length, 3, "results[2].length");
-  assert.sameValue(results[2][0], 44, "results[2][0] - kValue");
+  assert.sameValue(results[2][0], N(44), "results[2][0] - kValue");
   assert.sameValue(results[2][1], 2, "results[2][1] - k");
   assert.sameValue(results[2][2], sample, "results[2][2] - this");
 });
diff --git a/test/built-ins/TypedArray/prototype/filter/callbackfn-no-iteration-over-non-integer.js b/test/built-ins/TypedArray/prototype/filter/callbackfn-no-iteration-over-non-integer.js
index 6a9c5d282a..16691aac80 100644
--- a/test/built-ins/TypedArray/prototype/filter/callbackfn-no-iteration-over-non-integer.js
+++ b/test/built-ins/TypedArray/prototype/filter/callbackfn-no-iteration-over-non-integer.js
@@ -16,8 +16,8 @@ includes: [testTypedArray.js]
 features: [Symbol, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([7, 8]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([7, 8]));
 
   var results = [];
 
@@ -33,6 +33,6 @@ testWithTypedArrayConstructors(function(TA) {
   assert.sameValue(results[0][1], 0, "results[0][1] - k");
   assert.sameValue(results[1][1], 1, "results[1][1] - k");
 
-  assert.sameValue(results[0][0], 7, "results[0][0] - kValue");
-  assert.sameValue(results[1][0], 8, "results[1][0] - kValue");
+  assert.sameValue(results[0][0], N(7), "results[0][0] - kValue");
+  assert.sameValue(results[1][0], N(8), "results[1][0] - kValue");
 });
diff --git a/test/built-ins/TypedArray/prototype/filter/callbackfn-return-does-not-change-instance.js b/test/built-ins/TypedArray/prototype/filter/callbackfn-return-does-not-change-instance.js
index 7d37762961..6bf3f93afd 100644
--- a/test/built-ins/TypedArray/prototype/filter/callbackfn-return-does-not-change-instance.js
+++ b/test/built-ins/TypedArray/prototype/filter/callbackfn-return-does-not-change-instance.js
@@ -8,16 +8,16 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample1 = new TA(3);
 
-  sample1[1] = 1;
+  sample1[1] = N(1);
 
   sample1.filter(function() {
     return 42;
   });
 
-  assert.sameValue(sample1[0], 0, "[0] == 0");
-  assert.sameValue(sample1[1], 1, "[1] == 1");
-  assert.sameValue(sample1[2], 0, "[2] == 0");
+  assert.sameValue(sample1[0], N(0), "[0] == 0");
+  assert.sameValue(sample1[1], N(1), "[1] == 1");
+  assert.sameValue(sample1[2], N(0), "[2] == 0");
 });
diff --git a/test/built-ins/TypedArray/prototype/filter/callbackfn-set-value-during-iteration.js b/test/built-ins/TypedArray/prototype/filter/callbackfn-set-value-during-iteration.js
index 97c4ae7d35..5ef780ce18 100644
--- a/test/built-ins/TypedArray/prototype/filter/callbackfn-set-value-during-iteration.js
+++ b/test/built-ins/TypedArray/prototype/filter/callbackfn-set-value-during-iteration.js
@@ -16,24 +16,24 @@ includes: [testTypedArray.js]
 features: [Reflect.set, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43, 44]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43, 44]));
   var newVal = 0;
 
   sample.filter(function(val, i) {
     if (i > 0) {
       assert.sameValue(
-        sample[i - 1], newVal - 1,
+        sample[i - 1], N(newVal - 1),
         "get the changed value during the loop"
       );
       assert.sameValue(
-        Reflect.set(sample, 0, 7),
+        Reflect.set(sample, 0, N(7)),
         true,
         "re-set a value for sample[0]"
       );
     }
     assert.sameValue(
-      Reflect.set(sample, i, newVal),
+      Reflect.set(sample, i, N(newVal)),
       true,
       "set value during interaction"
     );
@@ -41,7 +41,7 @@ testWithTypedArrayConstructors(function(TA) {
     newVal++;
   });
 
-  assert.sameValue(sample[0], 7, "changed values after interaction [0] == 7");
-  assert.sameValue(sample[1], 1, "changed values after interaction [1] == 1");
-  assert.sameValue(sample[2], 2, "changed values after interaction [2] == 2");
+  assert.sameValue(sample[0], N(7), "changed values after interaction [0] == 7");
+  assert.sameValue(sample[1], N(1), "changed values after interaction [1] == 1");
+  assert.sameValue(sample[2], N(2), "changed values after interaction [2] == 2");
 });
diff --git a/test/built-ins/TypedArray/prototype/filter/result-does-not-share-buffer.js b/test/built-ins/TypedArray/prototype/filter/result-does-not-share-buffer.js
index bbd292d14f..1d68757d65 100644
--- a/test/built-ins/TypedArray/prototype/filter/result-does-not-share-buffer.js
+++ b/test/built-ins/TypedArray/prototype/filter/result-does-not-share-buffer.js
@@ -15,8 +15,8 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([40, 41, 42]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([40, 41, 42]));
   var result;
 
   result = sample.filter(function() { return true; });
diff --git a/test/built-ins/TypedArray/prototype/filter/result-full-callbackfn-returns-true.js b/test/built-ins/TypedArray/prototype/filter/result-full-callbackfn-returns-true.js
index f46bf483da..2999799891 100644
--- a/test/built-ins/TypedArray/prototype/filter/result-full-callbackfn-returns-true.js
+++ b/test/built-ins/TypedArray/prototype/filter/result-full-callbackfn-returns-true.js
@@ -16,8 +16,8 @@ includes: [testTypedArray.js, compareArray.js]
 features: [Symbol, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([40, 41, 42]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([40, 41, 42]));
 
   [
     true,
diff --git a/test/built-ins/TypedArray/prototype/filter/speciesctor-get-ctor-abrupt.js b/test/built-ins/TypedArray/prototype/filter/speciesctor-get-ctor-abrupt.js
index 6f9099eaec..e4d5890504 100644
--- a/test/built-ins/TypedArray/prototype/filter/speciesctor-get-ctor-abrupt.js
+++ b/test/built-ins/TypedArray/prototype/filter/speciesctor-get-ctor-abrupt.js
@@ -26,8 +26,8 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([40, 41, 42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([40, 41, 42, 43]));
 
   Object.defineProperty(sample, "constructor", {
     get: function() {
diff --git a/test/built-ins/TypedArray/prototype/filter/speciesctor-get-ctor-inherited.js b/test/built-ins/TypedArray/prototype/filter/speciesctor-get-ctor-inherited.js
index 9db63a8eb1..f58f47211d 100644
--- a/test/built-ins/TypedArray/prototype/filter/speciesctor-get-ctor-inherited.js
+++ b/test/built-ins/TypedArray/prototype/filter/speciesctor-get-ctor-inherited.js
@@ -26,8 +26,8 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([40, 41, 42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([40, 41, 42, 43]));
   var calls = 0;
   var result;
 
diff --git a/test/built-ins/TypedArray/prototype/filter/speciesctor-get-ctor-returns-throws.js b/test/built-ins/TypedArray/prototype/filter/speciesctor-get-ctor-returns-throws.js
index a63bd2e533..9b574031c2 100644
--- a/test/built-ins/TypedArray/prototype/filter/speciesctor-get-ctor-returns-throws.js
+++ b/test/built-ins/TypedArray/prototype/filter/speciesctor-get-ctor-returns-throws.js
@@ -30,8 +30,8 @@ features: [Symbol, TypedArray]
 
 var callbackfn = function() { return true; };
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([40, 41, 42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([40, 41, 42, 43]));
 
   sample.constructor = 42;
   assert.throws(TypeError, function() {
diff --git a/test/built-ins/TypedArray/prototype/filter/speciesctor-get-ctor.js b/test/built-ins/TypedArray/prototype/filter/speciesctor-get-ctor.js
index 6308fe92ff..23b11e3fd8 100644
--- a/test/built-ins/TypedArray/prototype/filter/speciesctor-get-ctor.js
+++ b/test/built-ins/TypedArray/prototype/filter/speciesctor-get-ctor.js
@@ -26,8 +26,8 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([40, 41, 42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([40, 41, 42, 43]));
   var calls = 0;
   var result;
 
diff --git a/test/built-ins/TypedArray/prototype/filter/speciesctor-get-species-custom-ctor-invocation.js b/test/built-ins/TypedArray/prototype/filter/speciesctor-get-species-custom-ctor-invocation.js
index ad8313a26a..3339c513a6 100644
--- a/test/built-ins/TypedArray/prototype/filter/speciesctor-get-species-custom-ctor-invocation.js
+++ b/test/built-ins/TypedArray/prototype/filter/speciesctor-get-species-custom-ctor-invocation.js
@@ -36,8 +36,8 @@ includes: [testTypedArray.js]
 features: [Symbol.species, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([40, 42, 42]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([40, 42, 42]));
   var result, ctorThis;
 
   sample.constructor = {};
@@ -47,7 +47,7 @@ testWithTypedArrayConstructors(function(TA) {
     return new TA(count);
   };
 
-  sample.filter(function(v) { return v === 42; });
+  sample.filter(function(v) { return v === N(42); });
 
   assert.sameValue(result.length, 1, "called with 1 argument");
   assert.sameValue(result[0], 2, "[0] is the new captured length");
diff --git a/test/built-ins/TypedArray/prototype/filter/speciesctor-get-species-custom-ctor-returns-another-instance.js b/test/built-ins/TypedArray/prototype/filter/speciesctor-get-species-custom-ctor-returns-another-instance.js
index 79547878b1..5181cf3c7a 100644
--- a/test/built-ins/TypedArray/prototype/filter/speciesctor-get-species-custom-ctor-returns-another-instance.js
+++ b/test/built-ins/TypedArray/prototype/filter/speciesctor-get-species-custom-ctor-returns-another-instance.js
@@ -36,8 +36,8 @@ includes: [testTypedArray.js, compareArray.js]
 features: [Symbol.species, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([40]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([40]));
   var otherTA = TA === Int8Array ? Int16Array : Int8Array;
   var other = new otherTA([1, 0, 1]);
   var result;
diff --git a/test/built-ins/TypedArray/prototype/filter/speciesctor-get-species-custom-ctor.js b/test/built-ins/TypedArray/prototype/filter/speciesctor-get-species-custom-ctor.js
index 28e12b1352..309f646a38 100644
--- a/test/built-ins/TypedArray/prototype/filter/speciesctor-get-species-custom-ctor.js
+++ b/test/built-ins/TypedArray/prototype/filter/speciesctor-get-species-custom-ctor.js
@@ -36,8 +36,8 @@ includes: [testTypedArray.js, compareArray.js]
 features: [Symbol.species, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([40, 41, 42]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([40, 41, 42]));
   var calls = 0;
   var other, result;
 
@@ -52,5 +52,5 @@ testWithTypedArrayConstructors(function(TA) {
 
   assert.sameValue(calls, 1, "ctor called once");
   assert.sameValue(result, other, "return is instance of custom constructor");
-  assert(compareArray(result, [40, 41, 42]), "values are set on the new obj");
+  assert(compareArray(result, N([40, 41, 42])), "values are set on the new obj");
 });
diff --git a/test/built-ins/TypedArray/prototype/filter/values-are-not-cached.js b/test/built-ins/TypedArray/prototype/filter/values-are-not-cached.js
index 1b24d310e5..47c0d465fe 100644
--- a/test/built-ins/TypedArray/prototype/filter/values-are-not-cached.js
+++ b/test/built-ins/TypedArray/prototype/filter/values-are-not-cached.js
@@ -16,16 +16,16 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43, 44]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43, 44]));
 
   sample.filter(function(v, i) {
     if (i < sample.length - 1) {
-      sample[i+1] = 42;
+      sample[i+1] = N(42);
     }
 
     assert.sameValue(
-      v, 42, "method does not cache values before callbackfn calls"
+      v, N(42), "method does not cache values before callbackfn calls"
     );
   });
 });
diff --git a/test/built-ins/TypedArray/prototype/filter/values-are-set.js b/test/built-ins/TypedArray/prototype/filter/values-are-set.js
index c9f16b8df1..2a033c7018 100644
--- a/test/built-ins/TypedArray/prototype/filter/values-are-set.js
+++ b/test/built-ins/TypedArray/prototype/filter/values-are-set.js
@@ -16,15 +16,15 @@ includes: [testTypedArray.js, compareArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([41, 1, 42, 7]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([41, 1, 42, 7]));
   var result;
 
   result = sample.filter(function() { return true; });
-  assert(compareArray(result, [41, 1, 42, 7]), "values are set #1");
+  assert(compareArray(result, N([41, 1, 42, 7])), "values are set #1");
 
   result = sample.filter(function(v) {
-    return v > 40;
+    return v > N(40);
   });
-  assert(compareArray(result, [41, 42]), "values are set #2");
+  assert(compareArray(result, N([41, 42])), "values are set #2");
 });
diff --git a/test/built-ins/TypedArray/prototype/find/get-length-ignores-length-prop.js b/test/built-ins/TypedArray/prototype/find/get-length-ignores-length-prop.js
index b62f9170fa..754c2d3070 100644
--- a/test/built-ins/TypedArray/prototype/find/get-length-ignores-length-prop.js
+++ b/test/built-ins/TypedArray/prototype/find/get-length-ignores-length-prop.js
@@ -32,14 +32,14 @@ Object.defineProperty(TypedArray.prototype, "length", {
   }
 });
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   Object.defineProperty(TA.prototype, "length", {
     get: function() {
       throw new Test262Error();
     }
   });
 
-  var sample = new TA([42]);
+  var sample = new TA(N([42]));
 
   Object.defineProperty(sample, "length", {
     get: function() {
@@ -50,6 +50,6 @@ testWithTypedArrayConstructors(function(TA) {
 
   assert.sameValue(
     sample.find(function() { return true; }),
-    42
+    N(42)
   );
 });
diff --git a/test/built-ins/TypedArray/prototype/find/predicate-call-changes-value.js b/test/built-ins/TypedArray/prototype/find/predicate-call-changes-value.js
index 556fb9851c..b036a7c92c 100644
--- a/test/built-ins/TypedArray/prototype/find/predicate-call-changes-value.js
+++ b/test/built-ins/TypedArray/prototype/find/predicate-call-changes-value.js
@@ -29,8 +29,8 @@ info: |
 includes: [compareArray.js, testTypedArray.js]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var arr = [1, 2, 3];
+testWithTypedArrayConstructors(function(TA, N) {
+  var arr = N([1, 2, 3]);
   var sample;
   var result;
 
@@ -38,41 +38,41 @@ testWithTypedArrayConstructors(function(TA) {
   sample.find(function(val, i) {
     sample[i] = arr[i];
 
-    assert.sameValue(val, 0, "value is not mapped to instance");
+    assert.sameValue(val, N(0), "value is not mapped to instance");
   });
   assert(compareArray(sample, arr), "values set during each predicate call");
 
   sample = new TA(arr);
   result = sample.find(function(val, i) {
     if ( i === 0 ) {
-      sample[2] = 7;
+      sample[2] = N(7);
     }
-    return val === 7;
+    return val === N(7);
   });
-  assert.sameValue(result, 7, "value found");
+  assert.sameValue(result, N(7), "value found");
 
   sample = new TA(arr);
   result = sample.find(function(val, i) {
     if ( i === 0 ) {
-      sample[2] = 7;
+      sample[2] = N(7);
     }
-    return val === 3;
+    return val === N(3);
   });
   assert.sameValue(result, undefined, "value not found");
 
   sample = new TA(arr);
   result = sample.find(function(val, i) {
     if ( i > 0 ) {
-      sample[0] = 7;
+      sample[0] = N(7);
     }
-    return val === 7;
+    return val === N(7);
   });
   assert.sameValue(result, undefined, "value not found - changed after call");
 
   sample = new TA(arr);
   result = sample.find(function() {
-    sample[0] = 7;
+    sample[0] = N(7);
     return true;
   });
-  assert.sameValue(result, 1, "find() returns previous found value");
+  assert.sameValue(result, N(1), "find() returns previous found value");
 });
diff --git a/test/built-ins/TypedArray/prototype/find/predicate-call-parameters.js b/test/built-ins/TypedArray/prototype/find/predicate-call-parameters.js
index 02c20a2c95..e31cb95221 100644
--- a/test/built-ins/TypedArray/prototype/find/predicate-call-parameters.js
+++ b/test/built-ins/TypedArray/prototype/find/predicate-call-parameters.js
@@ -30,8 +30,8 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([39, 2, 62]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([39, 2, 62]));
   var results = [];
   var result;
 
@@ -44,19 +44,19 @@ testWithTypedArrayConstructors(function(TA) {
   assert.sameValue(results.length, 3, "predicate is called for each index");
 
   result = results[0];
-  assert.sameValue(result[0], 39, "results[0][0] === 39, value");
+  assert.sameValue(result[0], N(39), "results[0][0] === 39, value");
   assert.sameValue(result[1], 0, "results[0][1] === 0, index");
   assert.sameValue(result[2], sample, "results[0][2] === sample, instance");
   assert.sameValue(result.length, 3, "results[0].length === 3 arguments");
 
   result = results[1];
-  assert.sameValue(result[0], 2, "results[1][0] === 2, value");
+  assert.sameValue(result[0], N(2), "results[1][0] === 2, value");
   assert.sameValue(result[1], 1, "results[1][1] === 1, index");
   assert.sameValue(result[2], sample, "results[1][2] === sample, instance");
   assert.sameValue(result.length, 3, "results[1].length === 3 arguments");
 
   result = results[2];
-  assert.sameValue(result[0], 62, "results[2][0] === 62, value");
+  assert.sameValue(result[0], N(62), "results[2][0] === 62, value");
   assert.sameValue(result[1], 2, "results[2][1] === 2, index");
   assert.sameValue(result[2], sample, "results[2][2] === sample, instance");
   assert.sameValue(result.length, 3, "results[2].length === 3 arguments");
diff --git a/test/built-ins/TypedArray/prototype/find/return-found-value-predicate-result-is-true.js b/test/built-ins/TypedArray/prototype/find/return-found-value-predicate-result-is-true.js
index a2d0302c61..716b1638b5 100644
--- a/test/built-ins/TypedArray/prototype/find/return-found-value-predicate-result-is-true.js
+++ b/test/built-ins/TypedArray/prototype/find/return-found-value-predicate-result-is-true.js
@@ -29,8 +29,8 @@ includes: [testTypedArray.js]
 features: [Symbol, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([39, 2, 62]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([39, 2, 62]));
   var called, result;
 
   called = 0;
@@ -38,29 +38,29 @@ testWithTypedArrayConstructors(function(TA) {
     called++;
     return true;
   });
-  assert.sameValue(result, 39, "returned true on sample[0]");
+  assert.sameValue(result, N(39), "returned true on sample[0]");
   assert.sameValue(called, 1, "predicate was called once");
 
   called = 0;
   result = sample.find(function(val) {
     called++;
-    return val === 62;
+    return val === N(62);
   });
   assert.sameValue(called, 3, "predicate was called three times");
-  assert.sameValue(result, 62, "returned true on sample[3]");
+  assert.sameValue(result, N(62), "returned true on sample[3]");
 
   result = sample.find(function() { return "string"; });
-  assert.sameValue(result, 39, "ToBoolean(string)");
+  assert.sameValue(result, N(39), "ToBoolean(string)");
 
   result = sample.find(function() { return {}; });
-  assert.sameValue(result, 39, "ToBoolean(object)");
+  assert.sameValue(result, N(39), "ToBoolean(object)");
 
   result = sample.find(function() { return Symbol(""); });
-  assert.sameValue(result, 39, "ToBoolean(symbol)");
+  assert.sameValue(result, N(39), "ToBoolean(symbol)");
 
   result = sample.find(function() { return 1; });
-  assert.sameValue(result, 39, "ToBoolean(number)");
+  assert.sameValue(result, N(39), "ToBoolean(number)");
 
   result = sample.find(function() { return -1; });
-  assert.sameValue(result, 39, "ToBoolean(negative number)");
+  assert.sameValue(result, N(39), "ToBoolean(negative number)");
 });
diff --git a/test/built-ins/TypedArray/prototype/findIndex/get-length-ignores-length-prop.js b/test/built-ins/TypedArray/prototype/findIndex/get-length-ignores-length-prop.js
index 99566c3d56..697f3ef430 100644
--- a/test/built-ins/TypedArray/prototype/findIndex/get-length-ignores-length-prop.js
+++ b/test/built-ins/TypedArray/prototype/findIndex/get-length-ignores-length-prop.js
@@ -30,14 +30,14 @@ Object.defineProperty(TypedArray.prototype, "length", {
   }
 });
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   Object.defineProperty(TA.prototype, "length", {
     get: function() {
       throw new Test262Error();
     }
   });
 
-  var sample = new TA([42]);
+  var sample = new TA(N([42]));
 
   Object.defineProperty(sample, "length", {
     get: function() {
diff --git a/test/built-ins/TypedArray/prototype/findIndex/predicate-call-changes-value.js b/test/built-ins/TypedArray/prototype/findIndex/predicate-call-changes-value.js
index 84efabc264..e2a0fab02b 100644
--- a/test/built-ins/TypedArray/prototype/findIndex/predicate-call-changes-value.js
+++ b/test/built-ins/TypedArray/prototype/findIndex/predicate-call-changes-value.js
@@ -25,8 +25,8 @@ info: |
 includes: [compareArray.js, testTypedArray.js]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var arr = [10, 20, 30];
+testWithTypedArrayConstructors(function(TA, N) {
+  var arr = N([10, 20, 30]);
   var sample;
   var result;
 
@@ -34,34 +34,34 @@ testWithTypedArrayConstructors(function(TA) {
   sample.findIndex(function(val, i) {
     sample[i] = arr[i];
 
-    assert.sameValue(val, 0, "value is not mapped to instance");
+    assert.sameValue(val, N(0), "value is not mapped to instance");
   });
   assert(compareArray(sample, arr), "values set during each predicate call");
 
   sample = new TA(arr);
   result = sample.findIndex(function(val, i) {
     if ( i === 0 ) {
-      sample[2] = 7;
+      sample[2] = N(7);
     }
-    return val === 7;
+    return val === N(7);
   });
   assert.sameValue(result, 2, "value found");
 
   sample = new TA(arr);
   result = sample.findIndex(function(val, i) {
     if ( i === 0 ) {
-      sample[2] = 7;
+      sample[2] = N(7);
     }
-    return val === 30;
+    return val === N(30);
   });
   assert.sameValue(result, -1, "value not found");
 
   sample = new TA(arr);
   result = sample.findIndex(function(val, i) {
     if ( i > 0 ) {
-      sample[0] = 7;
+      sample[0] = N(7);
     }
-    return val === 7;
+    return val === N(7);
   });
   assert.sameValue(result, -1, "value not found - changed after call");
-});
\ No newline at end of file
+});
diff --git a/test/built-ins/TypedArray/prototype/findIndex/predicate-call-parameters.js b/test/built-ins/TypedArray/prototype/findIndex/predicate-call-parameters.js
index a4102dcb3a..c19ccd1d92 100644
--- a/test/built-ins/TypedArray/prototype/findIndex/predicate-call-parameters.js
+++ b/test/built-ins/TypedArray/prototype/findIndex/predicate-call-parameters.js
@@ -28,8 +28,8 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([39, 2, 62]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([39, 2, 62]));
   var results = [];
   var result;
 
@@ -42,19 +42,19 @@ testWithTypedArrayConstructors(function(TA) {
   assert.sameValue(results.length, 3, "predicate is called for each index");
 
   result = results[0];
-  assert.sameValue(result[0], 39, "results[0][0] === 39, value");
+  assert.sameValue(result[0], N(39), "results[0][0] === 39, value");
   assert.sameValue(result[1], 0, "results[0][1] === 0, index");
   assert.sameValue(result[2], sample, "results[0][2] === sample, instance");
   assert.sameValue(result.length, 3, "results[0].length === 3, arguments");
 
   result = results[1];
-  assert.sameValue(result[0], 2, "results[1][0] === 2, value");
+  assert.sameValue(result[0], N(2), "results[1][0] === 2, value");
   assert.sameValue(result[1], 1, "results[1][1] === 1, index");
   assert.sameValue(result[2], sample, "results[1][2] === sample, instance");
   assert.sameValue(result.length, 3, "results[1].length === 3, arguments");
 
   result = results[2];
-  assert.sameValue(result[0], 62, "results[2][0] === 62, value");
+  assert.sameValue(result[0], N(62), "results[2][0] === 62, value");
   assert.sameValue(result[1], 2, "results[2][1] === 2, index");
   assert.sameValue(result[2], sample, "results[2][2] === sample, instance");
   assert.sameValue(result.length, 3, "results[2].length === 3, arguments");
diff --git a/test/built-ins/TypedArray/prototype/findIndex/return-index-predicate-result-is-true.js b/test/built-ins/TypedArray/prototype/findIndex/return-index-predicate-result-is-true.js
index 9e4880f225..1e56448ca9 100644
--- a/test/built-ins/TypedArray/prototype/findIndex/return-index-predicate-result-is-true.js
+++ b/test/built-ins/TypedArray/prototype/findIndex/return-index-predicate-result-is-true.js
@@ -28,8 +28,8 @@ includes: [testTypedArray.js]
 features: [Symbol, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([39, 3, 9]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([39, 3, 9]));
   var called = 0;
 
   var result = sample.findIndex(function() {
@@ -43,7 +43,7 @@ testWithTypedArrayConstructors(function(TA) {
   called = 0;
   result = sample.findIndex(function(val) {
     called++;
-    return val === 9;
+    return val === N(9);
   });
 
   assert.sameValue(called, 3, "predicate was called three times");
diff --git a/test/built-ins/TypedArray/prototype/findIndex/return-negative-one-if-predicate-returns-false-value.js b/test/built-ins/TypedArray/prototype/findIndex/return-negative-one-if-predicate-returns-false-value.js
index f3367fbfaf..7a8b9d9e50 100644
--- a/test/built-ins/TypedArray/prototype/findIndex/return-negative-one-if-predicate-returns-false-value.js
+++ b/test/built-ins/TypedArray/prototype/findIndex/return-negative-one-if-predicate-returns-false-value.js
@@ -27,8 +27,8 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([1, 2, 3]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([1, 2, 3]));
   var called = 0;
 
   var result = sample.findIndex(function() {
diff --git a/test/built-ins/TypedArray/prototype/forEach/callbackfn-arguments-with-thisarg.js b/test/built-ins/TypedArray/prototype/forEach/callbackfn-arguments-with-thisarg.js
index 13ae208be2..15a960ab9e 100644
--- a/test/built-ins/TypedArray/prototype/forEach/callbackfn-arguments-with-thisarg.js
+++ b/test/built-ins/TypedArray/prototype/forEach/callbackfn-arguments-with-thisarg.js
@@ -25,8 +25,8 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43, 44]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43, 44]));
 
   var results = [];
   var thisArg = ["test262", 0, "ecma262", 0];
@@ -39,17 +39,17 @@ testWithTypedArrayConstructors(function(TA) {
   assert.sameValue(thisArg.length, 4, "thisArg.length");
 
   assert.sameValue(results[0].length, 3, "results[0].length");
-  assert.sameValue(results[0][0], 42, "results[0][0] - kValue");
+  assert.sameValue(results[0][0], N(42), "results[0][0] - kValue");
   assert.sameValue(results[0][1], 0, "results[0][1] - k");
   assert.sameValue(results[0][2], sample, "results[0][2] - this");
 
   assert.sameValue(results[1].length, 3, "results[1].length");
-  assert.sameValue(results[1][0], 43, "results[1][0] - kValue");
+  assert.sameValue(results[1][0], N(43), "results[1][0] - kValue");
   assert.sameValue(results[1][1], 1, "results[1][1] - k");
   assert.sameValue(results[1][2], sample, "results[1][2] - this");
 
   assert.sameValue(results[2].length, 3, "results[2].length");
-  assert.sameValue(results[2][0], 44, "results[2][0] - kValue");
+  assert.sameValue(results[2][0], N(44), "results[2][0] - kValue");
   assert.sameValue(results[2][1], 2, "results[2][1] - k");
   assert.sameValue(results[2][2], sample, "results[2][2] - this");
 });
diff --git a/test/built-ins/TypedArray/prototype/forEach/callbackfn-arguments-without-thisarg.js b/test/built-ins/TypedArray/prototype/forEach/callbackfn-arguments-without-thisarg.js
index 1255dbf2b9..454df69419 100644
--- a/test/built-ins/TypedArray/prototype/forEach/callbackfn-arguments-without-thisarg.js
+++ b/test/built-ins/TypedArray/prototype/forEach/callbackfn-arguments-without-thisarg.js
@@ -25,8 +25,8 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43, 44]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43, 44]));
 
   var results = [];
 
@@ -37,17 +37,17 @@ testWithTypedArrayConstructors(function(TA) {
   assert.sameValue(results.length, 3, "results.length");
 
   assert.sameValue(results[0].length, 3, "results[0].length");
-  assert.sameValue(results[0][0], 42, "results[0][0] - kValue");
+  assert.sameValue(results[0][0], N(42), "results[0][0] - kValue");
   assert.sameValue(results[0][1], 0, "results[0][1] - k");
   assert.sameValue(results[0][2], sample, "results[0][2] - this");
 
   assert.sameValue(results[1].length, 3, "results[1].length");
-  assert.sameValue(results[1][0], 43, "results[1][0] - kValue");
+  assert.sameValue(results[1][0], N(43), "results[1][0] - kValue");
   assert.sameValue(results[1][1], 1, "results[1][1] - k");
   assert.sameValue(results[1][2], sample, "results[1][2] - this");
 
   assert.sameValue(results[2].length, 3, "results[2].length");
-  assert.sameValue(results[2][0], 44, "results[2][0] - kValue");
+  assert.sameValue(results[2][0], N(44), "results[2][0] - kValue");
   assert.sameValue(results[2][1], 2, "results[2][1] - k");
   assert.sameValue(results[2][2], sample, "results[2][2] - this");
 });
diff --git a/test/built-ins/TypedArray/prototype/forEach/callbackfn-no-interaction-over-non-integer.js b/test/built-ins/TypedArray/prototype/forEach/callbackfn-no-interaction-over-non-integer.js
index 4056d65f48..a36a8824b7 100644
--- a/test/built-ins/TypedArray/prototype/forEach/callbackfn-no-interaction-over-non-integer.js
+++ b/test/built-ins/TypedArray/prototype/forEach/callbackfn-no-interaction-over-non-integer.js
@@ -19,8 +19,8 @@ includes: [testTypedArray.js]
 features: [Symbol, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([7, 8]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([7, 8]));
 
   var results = [];
 
@@ -36,6 +36,6 @@ testWithTypedArrayConstructors(function(TA) {
   assert.sameValue(results[0][1], 0, "results[0][1] - k");
   assert.sameValue(results[1][1], 1, "results[1][1] - k");
 
-  assert.sameValue(results[0][0], 7, "results[0][0] - kValue");
-  assert.sameValue(results[1][0], 8, "results[1][0] - kValue");
+  assert.sameValue(results[0][0], N(7), "results[0][0] - kValue");
+  assert.sameValue(results[1][0], N(8), "results[1][0] - kValue");
 });
diff --git a/test/built-ins/TypedArray/prototype/forEach/callbackfn-return-does-not-change-instance.js b/test/built-ins/TypedArray/prototype/forEach/callbackfn-return-does-not-change-instance.js
index 19584f1123..b2c7f3ff57 100644
--- a/test/built-ins/TypedArray/prototype/forEach/callbackfn-return-does-not-change-instance.js
+++ b/test/built-ins/TypedArray/prototype/forEach/callbackfn-return-does-not-change-instance.js
@@ -15,16 +15,16 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample1 = new TA(3);
 
-  sample1[1] = 1;
+  sample1[1] = N(1);
 
   sample1.forEach(function() {
     return 42;
   });
 
-  assert.sameValue(sample1[0], 0, "[0] == 0");
-  assert.sameValue(sample1[1], 1, "[1] == 1");
-  assert.sameValue(sample1[2], 0, "[2] == 0");
+  assert.sameValue(sample1[0], N(0), "[0] == 0");
+  assert.sameValue(sample1[1], N(1), "[1] == 1");
+  assert.sameValue(sample1[2], N(0), "[2] == 0");
 });
diff --git a/test/built-ins/TypedArray/prototype/forEach/callbackfn-set-value-during-interaction.js b/test/built-ins/TypedArray/prototype/forEach/callbackfn-set-value-during-interaction.js
index 8cae0a4c58..4c5a73bbff 100644
--- a/test/built-ins/TypedArray/prototype/forEach/callbackfn-set-value-during-interaction.js
+++ b/test/built-ins/TypedArray/prototype/forEach/callbackfn-set-value-during-interaction.js
@@ -16,24 +16,24 @@ includes: [testTypedArray.js]
 features: [Reflect.set, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43, 44]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43, 44]));
   var newVal = 0;
 
   sample.forEach(function(val, i) {
     if (i > 0) {
       assert.sameValue(
-        sample[i - 1], newVal - 1,
+        sample[i - 1], N(newVal - 1),
         "get the changed value during the loop"
       );
       assert.sameValue(
-        Reflect.set(sample, 0, 7),
+        Reflect.set(sample, 0, N(7)),
         true,
         "re-set a value for sample[0]"
       );
     }
     assert.sameValue(
-      Reflect.set(sample, i, newVal),
+      Reflect.set(sample, i, N(newVal)),
       true,
       "set value during iteration"
     );
@@ -41,7 +41,7 @@ testWithTypedArrayConstructors(function(TA) {
     newVal++;
   });
 
-  assert.sameValue(sample[0], 7, "changed values after iteration [0] == 7");
-  assert.sameValue(sample[1], 1, "changed values after iteration [1] == 1");
-  assert.sameValue(sample[2], 2, "changed values after iteration [2] == 2");
+  assert.sameValue(sample[0], N(7), "changed values after iteration [0] == 7");
+  assert.sameValue(sample[1], N(1), "changed values after iteration [1] == 1");
+  assert.sameValue(sample[2], N(2), "changed values after iteration [2] == 2");
 });
diff --git a/test/built-ins/TypedArray/prototype/forEach/values-are-not-cached.js b/test/built-ins/TypedArray/prototype/forEach/values-are-not-cached.js
index 10b3113562..7a965668d2 100644
--- a/test/built-ins/TypedArray/prototype/forEach/values-are-not-cached.js
+++ b/test/built-ins/TypedArray/prototype/forEach/values-are-not-cached.js
@@ -16,16 +16,16 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43, 44]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43, 44]));
 
   sample.forEach(function(v, i) {
     if (i < sample.length - 1) {
-      sample[i+1] = 42;
+      sample[i+1] = N(42);
     }
 
     assert.sameValue(
-      v, 42, "method does not cache values before callbackfn calls"
+      v, N(42), "method does not cache values before callbackfn calls"
     );
   });
 });
diff --git a/test/built-ins/TypedArray/prototype/includes/fromIndex-infinity.js b/test/built-ins/TypedArray/prototype/includes/fromIndex-infinity.js
index b9af6be505..f904d82a50 100644
--- a/test/built-ins/TypedArray/prototype/includes/fromIndex-infinity.js
+++ b/test/built-ins/TypedArray/prototype/includes/fromIndex-infinity.js
@@ -29,16 +29,16 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43, 43, 41]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43, 43, 41]));
 
   assert.sameValue(
-    sample.includes(43, Infinity),
+    sample.includes(N(43), Infinity),
     false,
     "includes(43, Infinity)"
   );
   assert.sameValue(
-    sample.includes(43, -Infinity),
+    sample.includes(N(43), -Infinity),
     true,
     "includes(43, -Infinity)");
 });
diff --git a/test/built-ins/TypedArray/prototype/includes/fromIndex-minus-zero.js b/test/built-ins/TypedArray/prototype/includes/fromIndex-minus-zero.js
index be2fedf7c2..3d4c08fb79 100644
--- a/test/built-ins/TypedArray/prototype/includes/fromIndex-minus-zero.js
+++ b/test/built-ins/TypedArray/prototype/includes/fromIndex-minus-zero.js
@@ -24,11 +24,11 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample;
 
-  sample = new TA([42, 43]);
-  assert.sameValue(sample.includes(42, -0), true, "-0 [0]");
-  assert.sameValue(sample.includes(43, -0), true, "-0 [1]");
-  assert.sameValue(sample.includes(44, -0), false, "-0 [2]");
+  sample = new TA(N([42, 43]));
+  assert.sameValue(sample.includes(N(42), -0), true, "-0 [0]");
+  assert.sameValue(sample.includes(N(43), -0), true, "-0 [1]");
+  assert.sameValue(sample.includes(N(44), -0), false, "-0 [2]");
 });
diff --git a/test/built-ins/TypedArray/prototype/includes/get-length-uses-internal-arraylength.js b/test/built-ins/TypedArray/prototype/includes/get-length-uses-internal-arraylength.js
index eb10a80bd0..c8b6b62801 100644
--- a/test/built-ins/TypedArray/prototype/includes/get-length-uses-internal-arraylength.js
+++ b/test/built-ins/TypedArray/prototype/includes/get-length-uses-internal-arraylength.js
@@ -23,11 +23,11 @@ features: [TypedArray]
 
 Object.defineProperty(TypedArray.prototype, "length", {value: 0});
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([7]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([7]));
 
   Object.defineProperty(TA.prototype, "length", {value: 0});
   Object.defineProperty(sample, "length", {value: 0});
 
-  assert.sameValue(sample.includes(7), true);
+  assert.sameValue(sample.includes(N(7)), true);
 });
diff --git a/test/built-ins/TypedArray/prototype/includes/return-abrupt-tointeger-fromindex-symbol.js b/test/built-ins/TypedArray/prototype/includes/return-abrupt-tointeger-fromindex-symbol.js
index 5e5364d5bd..cc4207aa34 100644
--- a/test/built-ins/TypedArray/prototype/includes/return-abrupt-tointeger-fromindex-symbol.js
+++ b/test/built-ins/TypedArray/prototype/includes/return-abrupt-tointeger-fromindex-symbol.js
@@ -24,10 +24,10 @@ features: [Symbol, TypedArray]
 
 var fromIndex = Symbol("1");
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([7]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([7]));
 
   assert.throws(TypeError, function() {
-    sample.includes(7, fromIndex);
+    sample.includes(N(7), fromIndex);
   });
 });
diff --git a/test/built-ins/TypedArray/prototype/includes/return-abrupt-tointeger-fromindex.js b/test/built-ins/TypedArray/prototype/includes/return-abrupt-tointeger-fromindex.js
index b17b6e3432..40a1f6dbc7 100644
--- a/test/built-ins/TypedArray/prototype/includes/return-abrupt-tointeger-fromindex.js
+++ b/test/built-ins/TypedArray/prototype/includes/return-abrupt-tointeger-fromindex.js
@@ -28,10 +28,10 @@ var fromIndex = {
   }
 };
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([7]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([7]));
 
   assert.throws(Test262Error, function() {
-    sample.includes(7, fromIndex);
+    sample.includes(N(7), fromIndex);
   });
 });
diff --git a/test/built-ins/TypedArray/prototype/includes/samevaluezero.js b/test/built-ins/TypedArray/prototype/includes/samevaluezero.js
index c6ad3785be..c06e20b1a5 100644
--- a/test/built-ins/TypedArray/prototype/includes/samevaluezero.js
+++ b/test/built-ins/TypedArray/prototype/includes/samevaluezero.js
@@ -36,7 +36,9 @@ testWithTypedArrayConstructors(function(TA) {
   assert.sameValue(sample.includes(false), false, "false");
   assert.sameValue(sample.includes(null), false, "null");
   assert.sameValue(sample.includes(""), false, "empty string");
-});
+},
+  // ToBigInt(undefined) throws a TypeError exception.
+  numericTypedArrayConstructors);
 
 testWithTypedArrayConstructors(function(FloatArray) {
   var sample = new FloatArray([42, 0, 1, undefined, NaN]);
diff --git a/test/built-ins/TypedArray/prototype/includes/search-found-returns-true.js b/test/built-ins/TypedArray/prototype/includes/search-found-returns-true.js
index e77ace2609..27c6e25f0d 100644
--- a/test/built-ins/TypedArray/prototype/includes/search-found-returns-true.js
+++ b/test/built-ins/TypedArray/prototype/includes/search-found-returns-true.js
@@ -29,16 +29,16 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43, 42, 41]);
-  assert.sameValue(sample.includes(42), true, "includes(42)");
-  assert.sameValue(sample.includes(43), true, "includes(43)");
-  assert.sameValue(sample.includes(43, 1), true, "includes(43, 1)");
-  assert.sameValue(sample.includes(42, 1), true, "includes(42, 1)");
-  assert.sameValue(sample.includes(42, 2), true, "includes(42, 2)");
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43, 42, 41]));
+  assert.sameValue(sample.includes(N(42)), true, "includes(42)");
+  assert.sameValue(sample.includes(N(43)), true, "includes(43)");
+  assert.sameValue(sample.includes(N(43), 1), true, "includes(43, 1)");
+  assert.sameValue(sample.includes(N(42), 1), true, "includes(42, 1)");
+  assert.sameValue(sample.includes(N(42), 2), true, "includes(42, 2)");
 
-  assert.sameValue(sample.includes(42, -4), true, "includes(42, -4)");
-  assert.sameValue(sample.includes(42, -3), true, "includes(42, -3)");
-  assert.sameValue(sample.includes(42, -2), true, "includes(42, -2)");
-  assert.sameValue(sample.includes(42, -5), true, "includes(42, -5)");
+  assert.sameValue(sample.includes(N(42), -4), true, "includes(42, -4)");
+  assert.sameValue(sample.includes(N(42), -3), true, "includes(42, -3)");
+  assert.sameValue(sample.includes(N(42), -2), true, "includes(42, -2)");
+  assert.sameValue(sample.includes(N(42), -5), true, "includes(42, -5)");
 });
diff --git a/test/built-ins/TypedArray/prototype/includes/search-not-found-returns-false.js b/test/built-ins/TypedArray/prototype/includes/search-not-found-returns-false.js
index 4000cd39b6..8654b4d36f 100644
--- a/test/built-ins/TypedArray/prototype/includes/search-not-found-returns-false.js
+++ b/test/built-ins/TypedArray/prototype/includes/search-not-found-returns-false.js
@@ -29,14 +29,14 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample;
 
-  sample = new TA([42, 43, 42, 41]);
-  assert.sameValue(sample.includes(44), false, "includes(44)");
-  assert.sameValue(sample.includes(43, 2), false, "includes(43, 2)");
-  assert.sameValue(sample.includes(42, 3), false, "includes(42, 3)");
-  assert.sameValue(sample.includes(44, -4), false, "includes(44, -4)");
-  assert.sameValue(sample.includes(44, -5), false, "includes(44, -5)");
-  assert.sameValue(sample.includes(42, -1), false, "includes(42, -1)");
+  sample = new TA(N([42, 43, 42, 41]));
+  assert.sameValue(sample.includes(N(44)), false, "includes(44)");
+  assert.sameValue(sample.includes(N(43), 2), false, "includes(43, 2)");
+  assert.sameValue(sample.includes(N(42), 3), false, "includes(42, 3)");
+  assert.sameValue(sample.includes(N(44), -4), false, "includes(44, -4)");
+  assert.sameValue(sample.includes(N(44), -5), false, "includes(44, -5)");
+  assert.sameValue(sample.includes(N(42), -1), false, "includes(42, -1)");
 });
diff --git a/test/built-ins/TypedArray/prototype/includes/tointeger-fromindex.js b/test/built-ins/TypedArray/prototype/includes/tointeger-fromindex.js
index 9a2be979f3..9ab7c404a9 100644
--- a/test/built-ins/TypedArray/prototype/includes/tointeger-fromindex.js
+++ b/test/built-ins/TypedArray/prototype/includes/tointeger-fromindex.js
@@ -35,31 +35,31 @@ var obj = {
   }
 };
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample;
 
-  sample = new TA([42, 43]);
-  assert.sameValue(sample.includes(42, "1"), false, "string [0]");
-  assert.sameValue(sample.includes(43, "1"), true, "string [1]");
+  sample = new TA(N([42, 43]));
+  assert.sameValue(sample.includes(N(42), "1"), false, "string [0]");
+  assert.sameValue(sample.includes(N(43), "1"), true, "string [1]");
 
-  assert.sameValue(sample.includes(42, true), false, "true [0]");
-  assert.sameValue(sample.includes(43, true), true, "true [1]");
+  assert.sameValue(sample.includes(N(42), true), false, "true [0]");
+  assert.sameValue(sample.includes(N(43), true), true, "true [1]");
 
-  assert.sameValue(sample.includes(42, false), true, "false [0]");
-  assert.sameValue(sample.includes(43, false), true, "false [1]");
+  assert.sameValue(sample.includes(N(42), false), true, "false [0]");
+  assert.sameValue(sample.includes(N(43), false), true, "false [1]");
 
-  assert.sameValue(sample.includes(42, NaN), true, "NaN [0]");
-  assert.sameValue(sample.includes(43, NaN), true, "NaN [1]");
+  assert.sameValue(sample.includes(N(42), NaN), true, "NaN [0]");
+  assert.sameValue(sample.includes(N(43), NaN), true, "NaN [1]");
 
-  assert.sameValue(sample.includes(42, null), true, "null [0]");
-  assert.sameValue(sample.includes(43, null), true, "null [1]");
+  assert.sameValue(sample.includes(N(42), null), true, "null [0]");
+  assert.sameValue(sample.includes(N(43), null), true, "null [1]");
 
-  assert.sameValue(sample.includes(42, undefined), true, "undefined [0]");
-  assert.sameValue(sample.includes(43, undefined), true, "undefined [1]");
+  assert.sameValue(sample.includes(N(42), undefined), true, "undefined [0]");
+  assert.sameValue(sample.includes(N(43), undefined), true, "undefined [1]");
 
-  assert.sameValue(sample.includes(42, null), true, "null [0]");
-  assert.sameValue(sample.includes(43, null), true, "null [1]");
+  assert.sameValue(sample.includes(N(42), null), true, "null [0]");
+  assert.sameValue(sample.includes(N(43), null), true, "null [1]");
 
-  assert.sameValue(sample.includes(42, obj), false, "object [0]");
-  assert.sameValue(sample.includes(43, obj), true, "object [1]");
+  assert.sameValue(sample.includes(N(42), obj), false, "object [0]");
+  assert.sameValue(sample.includes(N(43), obj), true, "object [1]");
 });
diff --git a/test/built-ins/TypedArray/prototype/indexOf/fromIndex-infinity.js b/test/built-ins/TypedArray/prototype/indexOf/fromIndex-infinity.js
index a048138c0e..e4a61ec962 100644
--- a/test/built-ins/TypedArray/prototype/indexOf/fromIndex-infinity.js
+++ b/test/built-ins/TypedArray/prototype/indexOf/fromIndex-infinity.js
@@ -31,9 +31,9 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43, 43, 41]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43, 43, 41]));
 
-  assert.sameValue(sample.indexOf(43, Infinity), -1, "indexOf(43, Infinity)");
-  assert.sameValue(sample.indexOf(43, -Infinity), 1, "indexOf(43, -Infinity)");
+  assert.sameValue(sample.indexOf(N(43), Infinity), -1, "indexOf(43, Infinity)");
+  assert.sameValue(sample.indexOf(N(43), -Infinity), 1, "indexOf(43, -Infinity)");
 });
diff --git a/test/built-ins/TypedArray/prototype/indexOf/fromIndex-minus-zero.js b/test/built-ins/TypedArray/prototype/indexOf/fromIndex-minus-zero.js
index 3e4dfae8f9..46fbb0550d 100644
--- a/test/built-ins/TypedArray/prototype/indexOf/fromIndex-minus-zero.js
+++ b/test/built-ins/TypedArray/prototype/indexOf/fromIndex-minus-zero.js
@@ -21,10 +21,10 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample;
 
-  sample = new TA([42, 43]);
-  assert.sameValue(sample.indexOf(42, -0), 0, "-0 [0]");
-  assert.sameValue(sample.indexOf(43, -0), 1, "-0 [1]");
+  sample = new TA(N([42, 43]));
+  assert.sameValue(sample.indexOf(N(42), -0), 0, "-0 [0]");
+  assert.sameValue(sample.indexOf(N(43), -0), 1, "-0 [1]");
 });
diff --git a/test/built-ins/TypedArray/prototype/indexOf/get-length-uses-internal-arraylength.js b/test/built-ins/TypedArray/prototype/indexOf/get-length-uses-internal-arraylength.js
index 2703a0519b..fb3d623498 100644
--- a/test/built-ins/TypedArray/prototype/indexOf/get-length-uses-internal-arraylength.js
+++ b/test/built-ins/TypedArray/prototype/indexOf/get-length-uses-internal-arraylength.js
@@ -22,11 +22,11 @@ features: [TypedArray]
 
 Object.defineProperty(TypedArray.prototype, "length", {value: 0});
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([7]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([7]));
 
   Object.defineProperty(TA.prototype, "length", {value: 0});
   Object.defineProperty(sample, "length", {value: 0});
 
-  assert.sameValue(sample.indexOf(7), 0);
+  assert.sameValue(sample.indexOf(N(7)), 0);
 });
diff --git a/test/built-ins/TypedArray/prototype/indexOf/search-found-returns-index.js b/test/built-ins/TypedArray/prototype/indexOf/search-found-returns-index.js
index 48500c1a85..4a75a3a0a9 100644
--- a/test/built-ins/TypedArray/prototype/indexOf/search-found-returns-index.js
+++ b/test/built-ins/TypedArray/prototype/indexOf/search-found-returns-index.js
@@ -31,16 +31,16 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43, 42, 41]);
-  assert.sameValue(sample.indexOf(42), 0, "indexOf(42)");
-  assert.sameValue(sample.indexOf(43), 1, "indexOf(43)");
-  assert.sameValue(sample.indexOf(43, 1), 1, "indexOf(43, 1)");
-  assert.sameValue(sample.indexOf(42, 1), 2, "indexOf(42, 1)");
-  assert.sameValue(sample.indexOf(42, 2), 2, "indexOf(42, 2)");
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43, 42, 41]));
+  assert.sameValue(sample.indexOf(N(42)), 0, "indexOf(42)");
+  assert.sameValue(sample.indexOf(N(43)), 1, "indexOf(43)");
+  assert.sameValue(sample.indexOf(N(43), 1), 1, "indexOf(43, 1)");
+  assert.sameValue(sample.indexOf(N(42), 1), 2, "indexOf(42, 1)");
+  assert.sameValue(sample.indexOf(N(42), 2), 2, "indexOf(42, 2)");
 
-  assert.sameValue(sample.indexOf(42, -4), 0, "indexOf(42, -4)");
-  assert.sameValue(sample.indexOf(42, -3), 2, "indexOf(42, -3)");
-  assert.sameValue(sample.indexOf(42, -2), 2, "indexOf(42, -2)");
-  assert.sameValue(sample.indexOf(42, -5), 0, "indexOf(42, -5)");
+  assert.sameValue(sample.indexOf(N(42), -4), 0, "indexOf(42, -4)");
+  assert.sameValue(sample.indexOf(N(42), -3), 2, "indexOf(42, -3)");
+  assert.sameValue(sample.indexOf(N(42), -2), 2, "indexOf(42, -2)");
+  assert.sameValue(sample.indexOf(N(42), -5), 0, "indexOf(42, -5)");
 });
diff --git a/test/built-ins/TypedArray/prototype/indexOf/search-not-found-returns-minus-one.js b/test/built-ins/TypedArray/prototype/indexOf/search-not-found-returns-minus-one.js
index ee8f513dc8..8c0917920f 100644
--- a/test/built-ins/TypedArray/prototype/indexOf/search-not-found-returns-minus-one.js
+++ b/test/built-ins/TypedArray/prototype/indexOf/search-not-found-returns-minus-one.js
@@ -25,14 +25,14 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample;
 
-  sample = new TA([42, 43, 42, 41]);
-  assert.sameValue(sample.indexOf(44), -1, "indexOf(44)");
-  assert.sameValue(sample.indexOf(43, 2), -1, "indexOf(43, 2)");
-  assert.sameValue(sample.indexOf(42, 3), -1, "indexOf(42, 3)");
-  assert.sameValue(sample.indexOf(44, -4), -1, "indexOf(44, -4)");
-  assert.sameValue(sample.indexOf(44, -5), -1, "indexOf(44, -5)");
-  assert.sameValue(sample.indexOf(42, -1), -1, "indexOf(42, -1)");
+  sample = new TA(N([42, 43, 42, 41]));
+  assert.sameValue(sample.indexOf(N(44)), -1, "indexOf(44)");
+  assert.sameValue(sample.indexOf(N(43), 2), -1, "indexOf(43, 2)");
+  assert.sameValue(sample.indexOf(N(42), 3), -1, "indexOf(42, 3)");
+  assert.sameValue(sample.indexOf(N(44), -4), -1, "indexOf(44, -4)");
+  assert.sameValue(sample.indexOf(N(44), -5), -1, "indexOf(44, -5)");
+  assert.sameValue(sample.indexOf(N(42), -1), -1, "indexOf(42, -1)");
 });
diff --git a/test/built-ins/TypedArray/prototype/indexOf/strict-comparison.js b/test/built-ins/TypedArray/prototype/indexOf/strict-comparison.js
index 5a7883f970..ddd3540f8f 100644
--- a/test/built-ins/TypedArray/prototype/indexOf/strict-comparison.js
+++ b/test/built-ins/TypedArray/prototype/indexOf/strict-comparison.js
@@ -38,4 +38,6 @@ testWithTypedArrayConstructors(function(TA) {
   assert.sameValue(sample.indexOf(null), -1, "null");
   assert.sameValue(sample.indexOf(undefined), -1, "undefined");
   assert.sameValue(sample.indexOf(""), -1, "empty string");
-});
+},
+  // Cannot create Big*64Arrays from non-safe integers.
+  numericTypedArrayConstructors);
diff --git a/test/built-ins/TypedArray/prototype/indexOf/tointeger-fromindex.js b/test/built-ins/TypedArray/prototype/indexOf/tointeger-fromindex.js
index f733d249ce..2672ddb128 100644
--- a/test/built-ins/TypedArray/prototype/indexOf/tointeger-fromindex.js
+++ b/test/built-ins/TypedArray/prototype/indexOf/tointeger-fromindex.js
@@ -27,31 +27,31 @@ var obj = {
   }
 };
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample;
 
-  sample = new TA([42, 43]);
-  assert.sameValue(sample.indexOf(42, "1"), -1, "string [0]");
-  assert.sameValue(sample.indexOf(43, "1"), 1, "string [1]");
+  sample = new TA(N([42, 43]));
+  assert.sameValue(sample.indexOf(N(42), "1"), -1, "string [0]");
+  assert.sameValue(sample.indexOf(N(43), "1"), 1, "string [1]");
 
-  assert.sameValue(sample.indexOf(42, true), -1, "true [0]");
-  assert.sameValue(sample.indexOf(43, true), 1, "true [1]");
+  assert.sameValue(sample.indexOf(N(42), true), -1, "true [0]");
+  assert.sameValue(sample.indexOf(N(43), true), 1, "true [1]");
 
-  assert.sameValue(sample.indexOf(42, false), 0, "false [0]");
-  assert.sameValue(sample.indexOf(43, false), 1, "false [1]");
+  assert.sameValue(sample.indexOf(N(42), false), 0, "false [0]");
+  assert.sameValue(sample.indexOf(N(43), false), 1, "false [1]");
 
-  assert.sameValue(sample.indexOf(42, NaN), 0, "NaN [0]");
-  assert.sameValue(sample.indexOf(43, NaN), 1, "NaN [1]");
+  assert.sameValue(sample.indexOf(N(42), NaN), 0, "NaN [0]");
+  assert.sameValue(sample.indexOf(N(43), NaN), 1, "NaN [1]");
 
-  assert.sameValue(sample.indexOf(42, null), 0, "null [0]");
-  assert.sameValue(sample.indexOf(43, null), 1, "null [1]");
+  assert.sameValue(sample.indexOf(N(42), null), 0, "null [0]");
+  assert.sameValue(sample.indexOf(N(43), null), 1, "null [1]");
 
-  assert.sameValue(sample.indexOf(42, undefined), 0, "undefined [0]");
-  assert.sameValue(sample.indexOf(43, undefined), 1, "undefined [1]");
+  assert.sameValue(sample.indexOf(N(42), undefined), 0, "undefined [0]");
+  assert.sameValue(sample.indexOf(N(43), undefined), 1, "undefined [1]");
 
-  assert.sameValue(sample.indexOf(42, null), 0, "null [0]");
-  assert.sameValue(sample.indexOf(43, null), 1, "null [1]");
+  assert.sameValue(sample.indexOf(N(42), null), 0, "null [0]");
+  assert.sameValue(sample.indexOf(N(43), null), 1, "null [1]");
 
-  assert.sameValue(sample.indexOf(42, obj), -1, "object [0]");
-  assert.sameValue(sample.indexOf(43, obj), 1, "object [1]");
+  assert.sameValue(sample.indexOf(N(42), obj), -1, "object [0]");
+  assert.sameValue(sample.indexOf(N(43), obj), 1, "object [1]");
 });
diff --git a/test/built-ins/TypedArray/prototype/join/custom-separator-result-from-tostring-on-each-simple-value.js b/test/built-ins/TypedArray/prototype/join/custom-separator-result-from-tostring-on-each-simple-value.js
index 694f81db08..13cb0624a9 100644
--- a/test/built-ins/TypedArray/prototype/join/custom-separator-result-from-tostring-on-each-simple-value.js
+++ b/test/built-ins/TypedArray/prototype/join/custom-separator-result-from-tostring-on-each-simple-value.js
@@ -29,8 +29,8 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([1, 0, 2, 3, 42, 127]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([1, 0, 2, 3, 42, 127]));
 
   var result;
 
diff --git a/test/built-ins/TypedArray/prototype/join/custom-separator-result-from-tostring-on-each-value.js b/test/built-ins/TypedArray/prototype/join/custom-separator-result-from-tostring-on-each-value.js
index 94caedf65a..d135c173fe 100644
--- a/test/built-ins/TypedArray/prototype/join/custom-separator-result-from-tostring-on-each-value.js
+++ b/test/built-ins/TypedArray/prototype/join/custom-separator-result-from-tostring-on-each-value.js
@@ -132,4 +132,6 @@ testWithTypedArrayConstructors(function(TA) {
   }).join(separator);
   result = sample.join(separator);
   assert.sameValue(result, expected, "using: " + separator);
-});
+},
+  // Cannot create Big*64Arrays from non-safe integers.
+  numericTypedArrayConstructors);
diff --git a/test/built-ins/TypedArray/prototype/join/get-length-uses-internal-arraylength.js b/test/built-ins/TypedArray/prototype/join/get-length-uses-internal-arraylength.js
index 5588297048..a98f8b84e9 100644
--- a/test/built-ins/TypedArray/prototype/join/get-length-uses-internal-arraylength.js
+++ b/test/built-ins/TypedArray/prototype/join/get-length-uses-internal-arraylength.js
@@ -32,8 +32,8 @@ var desc = {
 
 Object.defineProperty(TypedArray.prototype, "length", desc);
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43]));
 
   Object.defineProperty(TA.prototype, "length", desc);
   Object.defineProperty(sample, "length", desc);
diff --git a/test/built-ins/TypedArray/prototype/join/result-from-tostring-on-each-simple-value.js b/test/built-ins/TypedArray/prototype/join/result-from-tostring-on-each-simple-value.js
index b6d91a0350..dd6f981032 100644
--- a/test/built-ins/TypedArray/prototype/join/result-from-tostring-on-each-simple-value.js
+++ b/test/built-ins/TypedArray/prototype/join/result-from-tostring-on-each-simple-value.js
@@ -28,8 +28,8 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([1, 0, 2, 3, 42, 127]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([1, 0, 2, 3, 42, 127]));
 
   var result = sample.join();
 
diff --git a/test/built-ins/TypedArray/prototype/join/result-from-tostring-on-each-value.js b/test/built-ins/TypedArray/prototype/join/result-from-tostring-on-each-value.js
index d3d699ffa0..df27d079cf 100644
--- a/test/built-ins/TypedArray/prototype/join/result-from-tostring-on-each-value.js
+++ b/test/built-ins/TypedArray/prototype/join/result-from-tostring-on-each-value.js
@@ -41,4 +41,6 @@ testWithTypedArrayConstructors(function(TA) {
   var result = sample.join();
 
   assert.sameValue(result, expected);
-});
+},
+  // Cannot construct Big*64Arrays from non-safe integers.
+  numericTypedArrayConstructors);
diff --git a/test/built-ins/TypedArray/prototype/keys/iter-prototype.js b/test/built-ins/TypedArray/prototype/keys/iter-prototype.js
index fd5509ac62..a01464f547 100644
--- a/test/built-ins/TypedArray/prototype/keys/iter-prototype.js
+++ b/test/built-ins/TypedArray/prototype/keys/iter-prototype.js
@@ -17,8 +17,8 @@ features: [Symbol.iterator, TypedArray]
 
 var ArrayIteratorProto = Object.getPrototypeOf([][Symbol.iterator]());
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([0, 42, 64]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([0, 42, 64]));
   var iter = sample.keys();
 
   assert.sameValue(Object.getPrototypeOf(iter), ArrayIteratorProto);
diff --git a/test/built-ins/TypedArray/prototype/keys/return-itor.js b/test/built-ins/TypedArray/prototype/keys/return-itor.js
index 877f069652..e0fa5bdfb8 100644
--- a/test/built-ins/TypedArray/prototype/keys/return-itor.js
+++ b/test/built-ins/TypedArray/prototype/keys/return-itor.js
@@ -13,10 +13,10 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-var sample = new Int8Array([0, 42, 64]);
+var sample = [0, 42, 64];
 
-testWithTypedArrayConstructors(function(TA) {
-  var typedArray = new TA(sample);
+testWithTypedArrayConstructors(function(TA, N) {
+  var typedArray = new TA(N(sample));
   var itor = typedArray.keys();
 
   var next = itor.next();
diff --git a/test/built-ins/TypedArray/prototype/lastIndexOf/fromIndex-infinity.js b/test/built-ins/TypedArray/prototype/lastIndexOf/fromIndex-infinity.js
index 118fa2981b..6e828e8c5b 100644
--- a/test/built-ins/TypedArray/prototype/lastIndexOf/fromIndex-infinity.js
+++ b/test/built-ins/TypedArray/prototype/lastIndexOf/fromIndex-infinity.js
@@ -24,9 +24,9 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43, 43, 41]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43, 43, 41]));
 
-  assert.sameValue(sample.lastIndexOf(43, Infinity), 2, "lastIndexOf(43, Infinity)");
-  assert.sameValue(sample.lastIndexOf(43, -Infinity), -1, "lastIndexOf(43, -Infinity)");
+  assert.sameValue(sample.lastIndexOf(N(43), Infinity), 2, "lastIndexOf(43, Infinity)");
+  assert.sameValue(sample.lastIndexOf(N(43), -Infinity), -1, "lastIndexOf(43, -Infinity)");
 });
diff --git a/test/built-ins/TypedArray/prototype/lastIndexOf/fromIndex-minus-zero.js b/test/built-ins/TypedArray/prototype/lastIndexOf/fromIndex-minus-zero.js
index 1cf02d3295..c18cd6c68d 100644
--- a/test/built-ins/TypedArray/prototype/lastIndexOf/fromIndex-minus-zero.js
+++ b/test/built-ins/TypedArray/prototype/lastIndexOf/fromIndex-minus-zero.js
@@ -21,10 +21,10 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample;
 
-  sample = new TA([42, 43]);
-  assert.sameValue(sample.lastIndexOf(42, -0), 0, "-0 [0]");
-  assert.sameValue(sample.lastIndexOf(43, -0), -1, "-0 [1]");
+  sample = new TA(N([42, 43]));
+  assert.sameValue(sample.lastIndexOf(N(42), -0), 0, "-0 [0]");
+  assert.sameValue(sample.lastIndexOf(N(43), -0), -1, "-0 [1]");
 });
diff --git a/test/built-ins/TypedArray/prototype/lastIndexOf/get-length-uses-internal-arraylength.js b/test/built-ins/TypedArray/prototype/lastIndexOf/get-length-uses-internal-arraylength.js
index 076d0b8d8f..cc846e7ec7 100644
--- a/test/built-ins/TypedArray/prototype/lastIndexOf/get-length-uses-internal-arraylength.js
+++ b/test/built-ins/TypedArray/prototype/lastIndexOf/get-length-uses-internal-arraylength.js
@@ -22,11 +22,11 @@ features: [TypedArray]
 
 Object.defineProperty(TypedArray.prototype, "length", {value: 0});
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([7]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([7]));
 
   Object.defineProperty(TA.prototype, "length", {value: 0});
   Object.defineProperty(sample, "length", {value: 0});
 
-  assert.sameValue(sample.lastIndexOf(7), 0);
+  assert.sameValue(sample.lastIndexOf(N(7)), 0);
 });
diff --git a/test/built-ins/TypedArray/prototype/lastIndexOf/search-found-returns-index.js b/test/built-ins/TypedArray/prototype/lastIndexOf/search-found-returns-index.js
index ecf7b2a849..cfcae34fe7 100644
--- a/test/built-ins/TypedArray/prototype/lastIndexOf/search-found-returns-index.js
+++ b/test/built-ins/TypedArray/prototype/lastIndexOf/search-found-returns-index.js
@@ -30,28 +30,28 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43, 42, 41]);
-  assert.sameValue(sample.lastIndexOf(42), 2, "lastIndexOf(42)");
-  assert.sameValue(sample.lastIndexOf(43), 1, "lastIndexOf(43)");
-  assert.sameValue(sample.lastIndexOf(41), 3, "lastIndexOf(41)");
-  assert.sameValue(sample.lastIndexOf(41, 3), 3, "lastIndexOf(41, 3)");
-  assert.sameValue(sample.lastIndexOf(41, 4), 3, "lastIndexOf(41, 4)");
-  assert.sameValue(sample.lastIndexOf(43, 1), 1, "lastIndexOf(43, 1)");
-  assert.sameValue(sample.lastIndexOf(43, 2), 1, "lastIndexOf(43, 2)");
-  assert.sameValue(sample.lastIndexOf(43, 3), 1, "lastIndexOf(43, 3)");
-  assert.sameValue(sample.lastIndexOf(43, 4), 1, "lastIndexOf(43, 4)");
-  assert.sameValue(sample.lastIndexOf(42, 0), 0, "lastIndexOf(42, 0)");
-  assert.sameValue(sample.lastIndexOf(42, 1), 0, "lastIndexOf(42, 1)");
-  assert.sameValue(sample.lastIndexOf(42, 2), 2, "lastIndexOf(42, 2)");
-  assert.sameValue(sample.lastIndexOf(42, 3), 2, "lastIndexOf(42, 3)");
-  assert.sameValue(sample.lastIndexOf(42, 4), 2, "lastIndexOf(42, 4)");
-  assert.sameValue(sample.lastIndexOf(42, -4), 0, "lastIndexOf(42, -4)");
-  assert.sameValue(sample.lastIndexOf(42, -3), 0, "lastIndexOf(42, -3)");
-  assert.sameValue(sample.lastIndexOf(42, -2), 2, "lastIndexOf(42, -2)");
-  assert.sameValue(sample.lastIndexOf(42, -1), 2, "lastIndexOf(42, -1)");
-  assert.sameValue(sample.lastIndexOf(43, -3), 1, "lastIndexOf(43, -3)");
-  assert.sameValue(sample.lastIndexOf(43, -2), 1, "lastIndexOf(43, -2)");
-  assert.sameValue(sample.lastIndexOf(43, -1), 1, "lastIndexOf(43, -1)");
-  assert.sameValue(sample.lastIndexOf(41, -1), 3, "lastIndexOf(41, -1)");
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43, 42, 41]));
+  assert.sameValue(sample.lastIndexOf(N(42)), 2, "lastIndexOf(42)");
+  assert.sameValue(sample.lastIndexOf(N(43)), 1, "lastIndexOf(43)");
+  assert.sameValue(sample.lastIndexOf(N(41)), 3, "lastIndexOf(41)");
+  assert.sameValue(sample.lastIndexOf(N(41), 3), 3, "lastIndexOf(41, 3)");
+  assert.sameValue(sample.lastIndexOf(N(41), 4), 3, "lastIndexOf(41, 4)");
+  assert.sameValue(sample.lastIndexOf(N(43), 1), 1, "lastIndexOf(43, 1)");
+  assert.sameValue(sample.lastIndexOf(N(43), 2), 1, "lastIndexOf(43, 2)");
+  assert.sameValue(sample.lastIndexOf(N(43), 3), 1, "lastIndexOf(43, 3)");
+  assert.sameValue(sample.lastIndexOf(N(43), 4), 1, "lastIndexOf(43, 4)");
+  assert.sameValue(sample.lastIndexOf(N(42), 0), 0, "lastIndexOf(42, 0)");
+  assert.sameValue(sample.lastIndexOf(N(42), 1), 0, "lastIndexOf(42, 1)");
+  assert.sameValue(sample.lastIndexOf(N(42), 2), 2, "lastIndexOf(42, 2)");
+  assert.sameValue(sample.lastIndexOf(N(42), 3), 2, "lastIndexOf(42, 3)");
+  assert.sameValue(sample.lastIndexOf(N(42), 4), 2, "lastIndexOf(42, 4)");
+  assert.sameValue(sample.lastIndexOf(N(42), -4), 0, "lastIndexOf(42, -4)");
+  assert.sameValue(sample.lastIndexOf(N(42), -3), 0, "lastIndexOf(42, -3)");
+  assert.sameValue(sample.lastIndexOf(N(42), -2), 2, "lastIndexOf(42, -2)");
+  assert.sameValue(sample.lastIndexOf(N(42), -1), 2, "lastIndexOf(42, -1)");
+  assert.sameValue(sample.lastIndexOf(N(43), -3), 1, "lastIndexOf(43, -3)");
+  assert.sameValue(sample.lastIndexOf(N(43), -2), 1, "lastIndexOf(43, -2)");
+  assert.sameValue(sample.lastIndexOf(N(43), -1), 1, "lastIndexOf(43, -1)");
+  assert.sameValue(sample.lastIndexOf(N(41), -1), 3, "lastIndexOf(41, -1)");
 });
diff --git a/test/built-ins/TypedArray/prototype/lastIndexOf/search-not-found-returns-minus-one.js b/test/built-ins/TypedArray/prototype/lastIndexOf/search-not-found-returns-minus-one.js
index 4669b5fc5e..2094a40b3c 100644
--- a/test/built-ins/TypedArray/prototype/lastIndexOf/search-not-found-returns-minus-one.js
+++ b/test/built-ins/TypedArray/prototype/lastIndexOf/search-not-found-returns-minus-one.js
@@ -25,18 +25,18 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample;
 
-  sample = new TA([42, 43, 42, 41]);
-  assert.sameValue(sample.lastIndexOf(44), -1, "lastIndexOf(44)");
-  assert.sameValue(sample.lastIndexOf(44, -4), -1, "lastIndexOf(44, -4)");
-  assert.sameValue(sample.lastIndexOf(44, -5), -1, "lastIndexOf(44, -5)");
-  assert.sameValue(sample.lastIndexOf(42, -5), -1, "lastIndexOf(42, -5)");
-  assert.sameValue(sample.lastIndexOf(43, -4), -1, "lastIndexOf(43, -4)");
-  assert.sameValue(sample.lastIndexOf(43, -5), -1, "lastIndexOf(43, -5)");
-  assert.sameValue(sample.lastIndexOf(41, 0), -1, "lastIndexOf(41, 0)");
-  assert.sameValue(sample.lastIndexOf(41, 1), -1, "lastIndexOf(41, 1)");
-  assert.sameValue(sample.lastIndexOf(41, 2), -1, "lastIndexOf(41, 2)");
-  assert.sameValue(sample.lastIndexOf(43, 0), -1, "lastIndexOf(43, 0)");
+  sample = new TA(N([42, 43, 42, 41]));
+  assert.sameValue(sample.lastIndexOf(N(44)), -1, "lastIndexOf(44)");
+  assert.sameValue(sample.lastIndexOf(N(44), -4), -1, "lastIndexOf(44, -4)");
+  assert.sameValue(sample.lastIndexOf(N(44), -5), -1, "lastIndexOf(44, -5)");
+  assert.sameValue(sample.lastIndexOf(N(42), -5), -1, "lastIndexOf(42, -5)");
+  assert.sameValue(sample.lastIndexOf(N(43), -4), -1, "lastIndexOf(43, -4)");
+  assert.sameValue(sample.lastIndexOf(N(43), -5), -1, "lastIndexOf(43, -5)");
+  assert.sameValue(sample.lastIndexOf(N(41), 0), -1, "lastIndexOf(41, 0)");
+  assert.sameValue(sample.lastIndexOf(N(41), 1), -1, "lastIndexOf(41, 1)");
+  assert.sameValue(sample.lastIndexOf(N(41), 2), -1, "lastIndexOf(41, 2)");
+  assert.sameValue(sample.lastIndexOf(N(43), 0), -1, "lastIndexOf(43, 0)");
 });
diff --git a/test/built-ins/TypedArray/prototype/lastIndexOf/strict-comparison.js b/test/built-ins/TypedArray/prototype/lastIndexOf/strict-comparison.js
index 374cebfa5c..1adeec42fb 100644
--- a/test/built-ins/TypedArray/prototype/lastIndexOf/strict-comparison.js
+++ b/test/built-ins/TypedArray/prototype/lastIndexOf/strict-comparison.js
@@ -38,4 +38,6 @@ testWithTypedArrayConstructors(function(TA) {
   assert.sameValue(sample.lastIndexOf(null), -1, "null");
   assert.sameValue(sample.lastIndexOf(undefined), -1, "undefined");
   assert.sameValue(sample.lastIndexOf(""), -1, "empty string");
-});
+},
+  // Cannot create Big*64Arrays from non-safe integers.
+  numericTypedArrayConstructors);
diff --git a/test/built-ins/TypedArray/prototype/lastIndexOf/tointeger-fromindex.js b/test/built-ins/TypedArray/prototype/lastIndexOf/tointeger-fromindex.js
index 5d47be3342..c516ee8ca3 100644
--- a/test/built-ins/TypedArray/prototype/lastIndexOf/tointeger-fromindex.js
+++ b/test/built-ins/TypedArray/prototype/lastIndexOf/tointeger-fromindex.js
@@ -27,31 +27,31 @@ var obj = {
   }
 };
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample;
 
-  sample = new TA([42, 43]);
-  assert.sameValue(sample.lastIndexOf(42, "1"), 0, "string [0]");
-  assert.sameValue(sample.lastIndexOf(43, "1"), 1, "string [1]");
+  sample = new TA(N([42, 43]));
+  assert.sameValue(sample.lastIndexOf(N(42), "1"), 0, "string [0]");
+  assert.sameValue(sample.lastIndexOf(N(43), "1"), 1, "string [1]");
 
-  assert.sameValue(sample.lastIndexOf(42, true), 0, "true [0]");
-  assert.sameValue(sample.lastIndexOf(43, true), 1, "true [1]");
+  assert.sameValue(sample.lastIndexOf(N(42), true), 0, "true [0]");
+  assert.sameValue(sample.lastIndexOf(N(43), true), 1, "true [1]");
 
-  assert.sameValue(sample.lastIndexOf(42, false), 0, "false [0]");
-  assert.sameValue(sample.lastIndexOf(43, false), -1, "false [1]");
+  assert.sameValue(sample.lastIndexOf(N(42), false), 0, "false [0]");
+  assert.sameValue(sample.lastIndexOf(N(43), false), -1, "false [1]");
 
-  assert.sameValue(sample.lastIndexOf(42, NaN), 0, "NaN [0]");
-  assert.sameValue(sample.lastIndexOf(43, NaN), -1, "NaN [1]");
+  assert.sameValue(sample.lastIndexOf(N(42), NaN), 0, "NaN [0]");
+  assert.sameValue(sample.lastIndexOf(N(43), NaN), -1, "NaN [1]");
 
-  assert.sameValue(sample.lastIndexOf(42, null), 0, "null [0]");
-  assert.sameValue(sample.lastIndexOf(43, null), -1, "null [1]");
+  assert.sameValue(sample.lastIndexOf(N(42), null), 0, "null [0]");
+  assert.sameValue(sample.lastIndexOf(N(43), null), -1, "null [1]");
 
-  assert.sameValue(sample.lastIndexOf(42, undefined), 0, "undefined [0]");
-  assert.sameValue(sample.lastIndexOf(43, undefined), -1, "undefined [1]");
+  assert.sameValue(sample.lastIndexOf(N(42), undefined), 0, "undefined [0]");
+  assert.sameValue(sample.lastIndexOf(N(43), undefined), -1, "undefined [1]");
 
-  assert.sameValue(sample.lastIndexOf(42, null), 0, "null [0]");
-  assert.sameValue(sample.lastIndexOf(43, null), -1, "null [1]");
+  assert.sameValue(sample.lastIndexOf(N(42), null), 0, "null [0]");
+  assert.sameValue(sample.lastIndexOf(N(43), null), -1, "null [1]");
 
-  assert.sameValue(sample.lastIndexOf(42, obj), 0, "object [0]");
-  assert.sameValue(sample.lastIndexOf(43, obj), 1, "object [1]");
+  assert.sameValue(sample.lastIndexOf(N(42), obj), 0, "object [0]");
+  assert.sameValue(sample.lastIndexOf(N(43), obj), 1, "object [1]");
 });
diff --git a/test/built-ins/TypedArray/prototype/map/arraylength-internal.js b/test/built-ins/TypedArray/prototype/map/arraylength-internal.js
index 0f9ec08078..39b34ae8a1 100644
--- a/test/built-ins/TypedArray/prototype/map/arraylength-internal.js
+++ b/test/built-ins/TypedArray/prototype/map/arraylength-internal.js
@@ -14,7 +14,7 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample1 = new TA(42);
   var loop = 0;
 
@@ -22,6 +22,7 @@ testWithTypedArrayConstructors(function(TA) {
 
   sample1.map(function() {
     loop++;
+    return N(0);
   });
   assert.sameValue(loop, 42, "data descriptor");
 
@@ -37,6 +38,7 @@ testWithTypedArrayConstructors(function(TA) {
 
   sample2.map(function() {
     loop++;
+    return N(0);
   });
   assert.sameValue(loop, 4, "accessor descriptor");
 });
diff --git a/test/built-ins/TypedArray/prototype/map/callbackfn-arguments-with-thisarg.js b/test/built-ins/TypedArray/prototype/map/callbackfn-arguments-with-thisarg.js
index 5ffb6ce943..b0442e5e2c 100644
--- a/test/built-ins/TypedArray/prototype/map/callbackfn-arguments-with-thisarg.js
+++ b/test/built-ins/TypedArray/prototype/map/callbackfn-arguments-with-thisarg.js
@@ -17,31 +17,32 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43, 44]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43, 44]));
 
   var results = [];
   var thisArg = ["test262", 0, "ecma262", 0];
 
   sample.map(function() {
     results.push(arguments);
+    return N(0);
   }, thisArg);
 
   assert.sameValue(results.length, 3, "results.length");
   assert.sameValue(thisArg.length, 4, "thisArg.length");
 
   assert.sameValue(results[0].length, 3, "results[0].length");
-  assert.sameValue(results[0][0], 42, "results[0][0] - kValue");
+  assert.sameValue(results[0][0], N(42), "results[0][0] - kValue");
   assert.sameValue(results[0][1], 0, "results[0][1] - k");
   assert.sameValue(results[0][2], sample, "results[0][2] - this");
 
   assert.sameValue(results[1].length, 3, "results[1].length");
-  assert.sameValue(results[1][0], 43, "results[1][0] - kValue");
+  assert.sameValue(results[1][0], N(43), "results[1][0] - kValue");
   assert.sameValue(results[1][1], 1, "results[1][1] - k");
   assert.sameValue(results[1][2], sample, "results[1][2] - this");
 
   assert.sameValue(results[2].length, 3, "results[2].length");
-  assert.sameValue(results[2][0], 44, "results[2][0] - kValue");
+  assert.sameValue(results[2][0], N(44), "results[2][0] - kValue");
   assert.sameValue(results[2][1], 2, "results[2][1] - k");
   assert.sameValue(results[2][2], sample, "results[2][2] - this");
 });
diff --git a/test/built-ins/TypedArray/prototype/map/callbackfn-arguments-without-thisarg.js b/test/built-ins/TypedArray/prototype/map/callbackfn-arguments-without-thisarg.js
index 97386a564c..506f3e1ed7 100644
--- a/test/built-ins/TypedArray/prototype/map/callbackfn-arguments-without-thisarg.js
+++ b/test/built-ins/TypedArray/prototype/map/callbackfn-arguments-without-thisarg.js
@@ -17,29 +17,30 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43, 44]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43, 44]));
 
   var results = [];
 
   sample.map(function() {
     results.push(arguments);
+    return N(0);
   });
 
   assert.sameValue(results.length, 3, "results.length");
 
   assert.sameValue(results[0].length, 3, "results[0].length");
-  assert.sameValue(results[0][0], 42, "results[0][0] - kValue");
+  assert.sameValue(results[0][0], N(42), "results[0][0] - kValue");
   assert.sameValue(results[0][1], 0, "results[0][1] - k");
   assert.sameValue(results[0][2], sample, "results[0][2] - this");
 
   assert.sameValue(results[1].length, 3, "results[1].length");
-  assert.sameValue(results[1][0], 43, "results[1][0] - kValue");
+  assert.sameValue(results[1][0], N(43), "results[1][0] - kValue");
   assert.sameValue(results[1][1], 1, "results[1][1] - k");
   assert.sameValue(results[1][2], sample, "results[1][2] - this");
 
   assert.sameValue(results[2].length, 3, "results[2].length");
-  assert.sameValue(results[2][0], 44, "results[2][0] - kValue");
+  assert.sameValue(results[2][0], N(44), "results[2][0] - kValue");
   assert.sameValue(results[2][1], 2, "results[2][1] - k");
   assert.sameValue(results[2][2], sample, "results[2][2] - this");
 });
diff --git a/test/built-ins/TypedArray/prototype/map/callbackfn-detachbuffer.js b/test/built-ins/TypedArray/prototype/map/callbackfn-detachbuffer.js
index 1a7e78fae6..ef5b7fee7a 100644
--- a/test/built-ins/TypedArray/prototype/map/callbackfn-detachbuffer.js
+++ b/test/built-ins/TypedArray/prototype/map/callbackfn-detachbuffer.js
@@ -27,6 +27,7 @@ testWithTypedArrayConstructors(function(TA) {
       }
       $DETACHBUFFER(sample.buffer);
       loops++;
+      return N(0);
     });
   });
 
diff --git a/test/built-ins/TypedArray/prototype/map/callbackfn-no-interaction-over-non-integer-properties.js b/test/built-ins/TypedArray/prototype/map/callbackfn-no-interaction-over-non-integer-properties.js
index 0ce305a7ed..eff8277d63 100644
--- a/test/built-ins/TypedArray/prototype/map/callbackfn-no-interaction-over-non-integer-properties.js
+++ b/test/built-ins/TypedArray/prototype/map/callbackfn-no-interaction-over-non-integer-properties.js
@@ -18,8 +18,8 @@ includes: [testTypedArray.js, compareArray.js]
 features: [Symbol, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([7, 8]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([7, 8]));
 
   var results = [];
 
@@ -28,6 +28,7 @@ testWithTypedArrayConstructors(function(TA) {
 
   sample.map(function() {
     results.push(arguments);
+    return N(0);
   });
 
   assert.sameValue(results.length, 2, "results.length");
@@ -35,6 +36,6 @@ testWithTypedArrayConstructors(function(TA) {
   assert.sameValue(results[0][1], 0, "results[0][1] - k");
   assert.sameValue(results[1][1], 1, "results[1][1] - k");
 
-  assert.sameValue(results[0][0], 7, "results[0][0] - kValue");
-  assert.sameValue(results[1][0], 8, "results[1][0] - kValue");
+  assert.sameValue(results[0][0], N(7), "results[0][0] - kValue");
+  assert.sameValue(results[1][0], N(8), "results[1][0] - kValue");
 });
diff --git a/test/built-ins/TypedArray/prototype/map/callbackfn-return-affects-returned-object.js b/test/built-ins/TypedArray/prototype/map/callbackfn-return-affects-returned-object.js
index 6f19e2277d..b05d96894d 100644
--- a/test/built-ins/TypedArray/prototype/map/callbackfn-return-affects-returned-object.js
+++ b/test/built-ins/TypedArray/prototype/map/callbackfn-return-affects-returned-object.js
@@ -19,13 +19,13 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([1, 2, 4]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([1, 2, 4]));
   var result = sample.map(function(v) {
-    return v * 3;
+    return v * N(3);
   });
 
-  assert.sameValue(result[0], 3, "result[0] == 3");
-  assert.sameValue(result[1], 6, "result[1] == 6");
-  assert.sameValue(result[2], 12, "result[2] == 12");
+  assert.sameValue(result[0], N(3), "result[0] == 3");
+  assert.sameValue(result[1], N(6), "result[1] == 6");
+  assert.sameValue(result[2], N(12), "result[2] == 12");
 });
diff --git a/test/built-ins/TypedArray/prototype/map/callbackfn-return-does-not-change-instance.js b/test/built-ins/TypedArray/prototype/map/callbackfn-return-does-not-change-instance.js
index fe298618b8..311fbde669 100644
--- a/test/built-ins/TypedArray/prototype/map/callbackfn-return-does-not-change-instance.js
+++ b/test/built-ins/TypedArray/prototype/map/callbackfn-return-does-not-change-instance.js
@@ -10,16 +10,16 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample1 = new TA(3);
 
-  sample1[1] = 1;
+  sample1[1] = N(1);
 
   sample1.map(function() {
-    return 42;
+    return N(42);
   });
 
-  assert.sameValue(sample1[0], 0, "[0] == 0");
-  assert.sameValue(sample1[1], 1, "[1] == 1");
-  assert.sameValue(sample1[2], 0, "[2] == 0");
+  assert.sameValue(sample1[0], N(0), "[0] == 0");
+  assert.sameValue(sample1[1], N(1), "[1] == 1");
+  assert.sameValue(sample1[2], N(0), "[2] == 0");
 });
diff --git a/test/built-ins/TypedArray/prototype/map/callbackfn-return-does-not-copy-non-integer-properties.js b/test/built-ins/TypedArray/prototype/map/callbackfn-return-does-not-copy-non-integer-properties.js
index cbe3316cd8..d9fcda6ca2 100644
--- a/test/built-ins/TypedArray/prototype/map/callbackfn-return-does-not-copy-non-integer-properties.js
+++ b/test/built-ins/TypedArray/prototype/map/callbackfn-return-does-not-copy-non-integer-properties.js
@@ -17,15 +17,15 @@ includes: [testTypedArray.js]
 features: [Symbol, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([7, 8]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([7, 8]));
   var bar = Symbol("1");
 
   sample.foo = 42;
   sample[bar] = 1;
 
   var result = sample.map(function() {
-    return 0;
+    return N(0);
   });
 
   assert.sameValue(result.length, 2, "result.length");
diff --git a/test/built-ins/TypedArray/prototype/map/callbackfn-set-value-during-interaction.js b/test/built-ins/TypedArray/prototype/map/callbackfn-set-value-during-interaction.js
index 0d520cd453..b401826c61 100644
--- a/test/built-ins/TypedArray/prototype/map/callbackfn-set-value-during-interaction.js
+++ b/test/built-ins/TypedArray/prototype/map/callbackfn-set-value-during-interaction.js
@@ -11,32 +11,33 @@ includes: [testTypedArray.js]
 features: [Reflect.set, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43, 44]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43, 44]));
   var newVal = 0;
 
   sample.map(function(val, i) {
     if (i > 0) {
       assert.sameValue(
-        sample[i - 1], newVal - 1,
+        sample[i - 1], N(newVal - 1),
         "get the changed value during the loop"
       );
       assert.sameValue(
-        Reflect.set(sample, 0, 7),
+        Reflect.set(sample, 0, N(7)),
         true,
         "re-set a value for sample[0]"
       );
     }
     assert.sameValue(
-      Reflect.set(sample, i, newVal),
+      Reflect.set(sample, i, N(newVal)),
       true,
       "set value during iteration"
     );
 
     newVal++;
+    return N(0);
   });
 
-  assert.sameValue(sample[0], 7, "changed values after iteration [0] == 7");
-  assert.sameValue(sample[1], 1, "changed values after iteration [1] == 1");
-  assert.sameValue(sample[2], 2, "changed values after iteration [2] == 2");
+  assert.sameValue(sample[0], N(7), "changed values after iteration [0] == 7");
+  assert.sameValue(sample[1], N(1), "changed values after iteration [1] == 1");
+  assert.sameValue(sample[2], N(2), "changed values after iteration [2] == 2");
 });
diff --git a/test/built-ins/TypedArray/prototype/map/callbackfn-this.js b/test/built-ins/TypedArray/prototype/map/callbackfn-this.js
index 43d3159bc4..46d9909726 100644
--- a/test/built-ins/TypedArray/prototype/map/callbackfn-this.js
+++ b/test/built-ins/TypedArray/prototype/map/callbackfn-this.js
@@ -21,14 +21,14 @@ features: [TypedArray]
 var expected = (function() { return this; })();
 var thisArg = {};
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample = new TA(3);
 
   var results1 = [];
 
   sample.map(function() {
     results1.push(this);
-    return 0;
+    return N(0);
   });
 
   assert.sameValue(results1.length, 3, "results1");
@@ -40,7 +40,7 @@ testWithTypedArrayConstructors(function(TA) {
 
   sample.map(function() {
     results2.push(this);
-    return 0;
+    return N(0);
   }, thisArg);
 
   assert.sameValue(results2.length, 3, "results2");
diff --git a/test/built-ins/TypedArray/prototype/map/values-are-not-cached.js b/test/built-ins/TypedArray/prototype/map/values-are-not-cached.js
index d2345b13c0..e7d87ff1d1 100644
--- a/test/built-ins/TypedArray/prototype/map/values-are-not-cached.js
+++ b/test/built-ins/TypedArray/prototype/map/values-are-not-cached.js
@@ -11,16 +11,18 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43, 44]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43, 44]));
 
   sample.map(function(v, i) {
     if (i < sample.length - 1) {
-      sample[i+1] = 42;
+      sample[i+1] = N(42);
     }
 
     assert.sameValue(
-      v, 42, "method does not cache values before callbackfn calls"
+      v, N(42), "method does not cache values before callbackfn calls"
     );
+
+    return N(0);
   });
 });
diff --git a/test/built-ins/TypedArray/prototype/reduce/callbackfn-arguments-custom-accumulator.js b/test/built-ins/TypedArray/prototype/reduce/callbackfn-arguments-custom-accumulator.js
index c99ad441b1..3ed389aff7 100644
--- a/test/built-ins/TypedArray/prototype/reduce/callbackfn-arguments-custom-accumulator.js
+++ b/test/built-ins/TypedArray/prototype/reduce/callbackfn-arguments-custom-accumulator.js
@@ -26,8 +26,8 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43, 44]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43, 44]));
 
   var results = [];
 
@@ -40,19 +40,19 @@ testWithTypedArrayConstructors(function(TA) {
 
   assert.sameValue(results[0].length, 4, "results[0].length");
   assert.sameValue(results[0][0], 7, "results[0][0] - accumulator");
-  assert.sameValue(results[0][1], 42, "results[0][1] - kValue");
+  assert.sameValue(results[0][1], N(42), "results[0][1] - kValue");
   assert.sameValue(results[0][2], 0, "results[0][2] - k");
   assert.sameValue(results[0][3], sample, "results[0][3] - this");
 
   assert.sameValue(results[1].length, 4, "results[1].length");
   assert.sameValue(results[1][0], 8, "results[1][0] - accumulator");
-  assert.sameValue(results[1][1], 43, "results[1][1] - kValue");
+  assert.sameValue(results[1][1], N(43), "results[1][1] - kValue");
   assert.sameValue(results[1][2], 1, "results[1][2] - k");
   assert.sameValue(results[1][3], sample, "results[1][3] - this");
 
   assert.sameValue(results[2].length, 4, "results[2].length");
   assert.sameValue(results[2][0], 9, "results[2][0] - accumulator");
-  assert.sameValue(results[2][1], 44, "results[2][1] - kValue");
+  assert.sameValue(results[2][1], N(44), "results[2][1] - kValue");
   assert.sameValue(results[2][2], 2, "results[2][2] - k");
   assert.sameValue(results[2][3], sample, "results[2][3] - this");
 });
diff --git a/test/built-ins/TypedArray/prototype/reduce/callbackfn-arguments-default-accumulator.js b/test/built-ins/TypedArray/prototype/reduce/callbackfn-arguments-default-accumulator.js
index f293ef1b93..bdf5f7c646 100644
--- a/test/built-ins/TypedArray/prototype/reduce/callbackfn-arguments-default-accumulator.js
+++ b/test/built-ins/TypedArray/prototype/reduce/callbackfn-arguments-default-accumulator.js
@@ -33,27 +33,27 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43, 44]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43, 44]));
 
   var results = [];
 
   sample.reduce(function(accumulator) {
     results.push(arguments);
-    return accumulator - 1;
+    return accumulator - N(1);
   });
 
   assert.sameValue(results.length, 2, "results.length");
 
   assert.sameValue(results[0].length, 4, "results[1].length");
-  assert.sameValue(results[0][0], 42, "results[1][0] - accumulator");
-  assert.sameValue(results[0][1], 43, "results[1][1] - kValue");
+  assert.sameValue(results[0][0], N(42), "results[1][0] - accumulator");
+  assert.sameValue(results[0][1], N(43), "results[1][1] - kValue");
   assert.sameValue(results[0][2], 1, "results[1][2] - k");
   assert.sameValue(results[0][3], sample, "results[1][3] - this");
 
   assert.sameValue(results[1].length, 4, "results[2].length");
-  assert.sameValue(results[1][0], 41, "results[2][0] - accumulator");
-  assert.sameValue(results[1][1], 44, "results[2][1] - kValue");
+  assert.sameValue(results[1][0], N(41), "results[2][0] - accumulator");
+  assert.sameValue(results[1][1], N(44), "results[2][1] - kValue");
   assert.sameValue(results[1][2], 2, "results[2][2] - k");
   assert.sameValue(results[1][3], sample, "results[2][3] - this");
 });
diff --git a/test/built-ins/TypedArray/prototype/reduce/callbackfn-no-iteration-over-non-integer-properties.js b/test/built-ins/TypedArray/prototype/reduce/callbackfn-no-iteration-over-non-integer-properties.js
index 18982a9d37..14911508ce 100644
--- a/test/built-ins/TypedArray/prototype/reduce/callbackfn-no-iteration-over-non-integer-properties.js
+++ b/test/built-ins/TypedArray/prototype/reduce/callbackfn-no-iteration-over-non-integer-properties.js
@@ -26,8 +26,8 @@ includes: [testTypedArray.js]
 features: [Symbol, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([7, 8]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([7, 8]));
 
   var results = [];
 
@@ -43,6 +43,6 @@ testWithTypedArrayConstructors(function(TA) {
   assert.sameValue(results[0][2], 0, "results[0][2] - k");
   assert.sameValue(results[1][2], 1, "results[1][2] - k");
 
-  assert.sameValue(results[0][1], 7, "results[0][1] - kValue");
-  assert.sameValue(results[1][1], 8, "results[1][1] - kValue");
+  assert.sameValue(results[0][1], N(7), "results[0][1] - kValue");
+  assert.sameValue(results[1][1], N(8), "results[1][1] - kValue");
 });
diff --git a/test/built-ins/TypedArray/prototype/reduce/callbackfn-return-does-not-change-instance.js b/test/built-ins/TypedArray/prototype/reduce/callbackfn-return-does-not-change-instance.js
index 6969dd9b54..8c0dcd9aa4 100644
--- a/test/built-ins/TypedArray/prototype/reduce/callbackfn-return-does-not-change-instance.js
+++ b/test/built-ins/TypedArray/prototype/reduce/callbackfn-return-does-not-change-instance.js
@@ -8,14 +8,14 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([0, 1, 0]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([0, 1, 0]));
 
   sample.reduce(function() {
     return 42;
   }, 7);
 
-  assert.sameValue(sample[0], 0, "[0] == 0");
-  assert.sameValue(sample[1], 1, "[1] == 1");
-  assert.sameValue(sample[2], 0, "[2] == 0");
+  assert.sameValue(sample[0], N(0), "[0] == 0");
+  assert.sameValue(sample[1], N(1), "[1] == 1");
+  assert.sameValue(sample[2], N(0), "[2] == 0");
 });
diff --git a/test/built-ins/TypedArray/prototype/reduce/callbackfn-set-value-during-iteration.js b/test/built-ins/TypedArray/prototype/reduce/callbackfn-set-value-during-iteration.js
index 41ae9c0c7b..0afa1860c4 100644
--- a/test/built-ins/TypedArray/prototype/reduce/callbackfn-set-value-during-iteration.js
+++ b/test/built-ins/TypedArray/prototype/reduce/callbackfn-set-value-during-iteration.js
@@ -18,24 +18,24 @@ includes: [testTypedArray.js]
 features: [Reflect.set, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43, 44]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43, 44]));
   var newVal = 0;
 
   sample.reduce(function(acc, val, i) {
     if (i > 0) {
       assert.sameValue(
-        sample[i - 1], newVal - 1,
+        sample[i - 1], N(newVal - 1),
         "get the changed value during the loop"
       );
       assert.sameValue(
-        Reflect.set(sample, 0, 7),
+        Reflect.set(sample, 0, N(7)),
         true,
         "re-set a value for sample[0]"
       );
     }
     assert.sameValue(
-      Reflect.set(sample, i, newVal),
+      Reflect.set(sample, i, N(newVal)),
       true,
       "set value during iteration"
     );
@@ -43,7 +43,7 @@ testWithTypedArrayConstructors(function(TA) {
     newVal++;
   }, 0);
 
-  assert.sameValue(sample[0], 7, "changed values after iteration [0] == 7");
-  assert.sameValue(sample[1], 1, "changed values after iteration [1] == 1");
-  assert.sameValue(sample[2], 2, "changed values after iteration [2] == 2");
+  assert.sameValue(sample[0], N(7), "changed values after iteration [0] == 7");
+  assert.sameValue(sample[1], N(1), "changed values after iteration [1] == 1");
+  assert.sameValue(sample[2], N(2), "changed values after iteration [2] == 2");
 });
diff --git a/test/built-ins/TypedArray/prototype/reduce/get-length-uses-internal-arraylength.js b/test/built-ins/TypedArray/prototype/reduce/get-length-uses-internal-arraylength.js
index 53f976f0f8..b72ca46716 100644
--- a/test/built-ins/TypedArray/prototype/reduce/get-length-uses-internal-arraylength.js
+++ b/test/built-ins/TypedArray/prototype/reduce/get-length-uses-internal-arraylength.js
@@ -30,8 +30,8 @@ var desc = {
 
 Object.defineProperty(TypedArray.prototype, "length", desc);
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43]));
   var calls = 0;
 
   Object.defineProperty(TA.prototype, "length", desc);
diff --git a/test/built-ins/TypedArray/prototype/reduce/result-is-last-callbackfn-return.js b/test/built-ins/TypedArray/prototype/reduce/result-is-last-callbackfn-return.js
index 17280f1590..99ae68cef5 100644
--- a/test/built-ins/TypedArray/prototype/reduce/result-is-last-callbackfn-return.js
+++ b/test/built-ins/TypedArray/prototype/reduce/result-is-last-callbackfn-return.js
@@ -34,11 +34,11 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var calls, result;
 
   calls = 0;
-  result = new TA([1, 2, 3]).reduce(function() {
+  result = new TA(N([1, 2, 3])).reduce(function() {
     calls++;
 
     if (calls == 2) {
@@ -48,7 +48,7 @@ testWithTypedArrayConstructors(function(TA) {
   assert.sameValue(result, 42, "using default accumulator");
 
   calls = 0;
-  result = new TA([1, 2, 3]).reduce(function() {
+  result = new TA(N([1, 2, 3])).reduce(function() {
     calls++;
 
     if (calls == 3) {
diff --git a/test/built-ins/TypedArray/prototype/reduce/result-of-any-type.js b/test/built-ins/TypedArray/prototype/reduce/result-of-any-type.js
index 0519cc88a5..3ff22b46f0 100644
--- a/test/built-ins/TypedArray/prototype/reduce/result-of-any-type.js
+++ b/test/built-ins/TypedArray/prototype/reduce/result-of-any-type.js
@@ -34,8 +34,8 @@ includes: [testTypedArray.js]
 features: [Symbol, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43, 44]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43, 44]));
   [
     ["test262", "string"],
     ["", "empty string"],
diff --git a/test/built-ins/TypedArray/prototype/reduce/return-first-value-without-callbackfn.js b/test/built-ins/TypedArray/prototype/reduce/return-first-value-without-callbackfn.js
index 236b332e4f..965cec5c2d 100644
--- a/test/built-ins/TypedArray/prototype/reduce/return-first-value-without-callbackfn.js
+++ b/test/built-ins/TypedArray/prototype/reduce/return-first-value-without-callbackfn.js
@@ -31,12 +31,12 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var called = false;
-  var result = new TA([42]).reduce(function() {
+  var result = new TA(N([42])).reduce(function() {
     called = true;
   });
 
-  assert.sameValue(result, 42);
+  assert.sameValue(result, N(42));
   assert.sameValue(called, false);
 });
diff --git a/test/built-ins/TypedArray/prototype/reduce/values-are-not-cached.js b/test/built-ins/TypedArray/prototype/reduce/values-are-not-cached.js
index e091df1f9d..ecb194d960 100644
--- a/test/built-ins/TypedArray/prototype/reduce/values-are-not-cached.js
+++ b/test/built-ins/TypedArray/prototype/reduce/values-are-not-cached.js
@@ -26,16 +26,16 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43, 44]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43, 44]));
 
   sample.reduce(function(a, v, i) {
     if (i < sample.length - 1) {
-      sample[i+1] = 42;
+      sample[i+1] = N(42);
     }
 
     assert.sameValue(
-      v, 42, "method does not cache values before callbackfn calls"
+      v, N(42), "method does not cache values before callbackfn calls"
     );
   }, 0);
 });
diff --git a/test/built-ins/TypedArray/prototype/reduceRight/callbackfn-arguments-custom-accumulator.js b/test/built-ins/TypedArray/prototype/reduceRight/callbackfn-arguments-custom-accumulator.js
index aecfae24eb..c280aeef0a 100644
--- a/test/built-ins/TypedArray/prototype/reduceRight/callbackfn-arguments-custom-accumulator.js
+++ b/test/built-ins/TypedArray/prototype/reduceRight/callbackfn-arguments-custom-accumulator.js
@@ -27,8 +27,8 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43, 44]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43, 44]));
 
   var results = [];
 
@@ -41,19 +41,19 @@ testWithTypedArrayConstructors(function(TA) {
 
   assert.sameValue(results[0].length, 4, "results[0].length");
   assert.sameValue(results[0][0], 7, "results[0][0] - accumulator");
-  assert.sameValue(results[0][1], 44, "results[0][1] - kValue");
+  assert.sameValue(results[0][1], N(44), "results[0][1] - kValue");
   assert.sameValue(results[0][2], 2, "results[0][2] - k");
   assert.sameValue(results[0][3], sample, "results[0][3] - this");
 
   assert.sameValue(results[1].length, 4, "results[1].length");
   assert.sameValue(results[1][0], 8, "results[1][0] - accumulator");
-  assert.sameValue(results[1][1], 43, "results[1][1] - kValue");
+  assert.sameValue(results[1][1], N(43), "results[1][1] - kValue");
   assert.sameValue(results[1][2], 1, "results[1][2] - k");
   assert.sameValue(results[1][3], sample, "results[1][3] - this");
 
   assert.sameValue(results[2].length, 4, "results[2].length");
   assert.sameValue(results[2][0], 9, "results[2][0] - accumulator");
-  assert.sameValue(results[2][1], 42, "results[2][1] - kValue");
+  assert.sameValue(results[2][1], N(42), "results[2][1] - kValue");
   assert.sameValue(results[2][2], 0, "results[2][2] - k");
   assert.sameValue(results[2][3], sample, "results[2][3] - this");
 });
diff --git a/test/built-ins/TypedArray/prototype/reduceRight/callbackfn-arguments-default-accumulator.js b/test/built-ins/TypedArray/prototype/reduceRight/callbackfn-arguments-default-accumulator.js
index 51509985e9..e689c9fe76 100644
--- a/test/built-ins/TypedArray/prototype/reduceRight/callbackfn-arguments-default-accumulator.js
+++ b/test/built-ins/TypedArray/prototype/reduceRight/callbackfn-arguments-default-accumulator.js
@@ -36,27 +36,27 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43, 44]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43, 44]));
 
   var results = [];
 
   sample.reduceRight(function(accumulator) {
     results.push(arguments);
-    return accumulator + 1;
+    return accumulator + N(1);
   });
 
   assert.sameValue(results.length, 2, "results.length");
 
   assert.sameValue(results[0].length, 4, "results[1].length");
-  assert.sameValue(results[0][0], 44, "results[1][0] - accumulator");
-  assert.sameValue(results[0][1], 43, "results[1][1] - kValue");
+  assert.sameValue(results[0][0], N(44), "results[1][0] - accumulator");
+  assert.sameValue(results[0][1], N(43), "results[1][1] - kValue");
   assert.sameValue(results[0][2], 1, "results[1][2] - k");
   assert.sameValue(results[0][3], sample, "results[1][3] - this");
 
   assert.sameValue(results[1].length, 4, "results[2].length");
-  assert.sameValue(results[1][0], 45, "results[2][0] - accumulator");
-  assert.sameValue(results[1][1], 42, "results[2][1] - kValue");
+  assert.sameValue(results[1][0], N(45), "results[2][0] - accumulator");
+  assert.sameValue(results[1][1], N(42), "results[2][1] - kValue");
   assert.sameValue(results[1][2], 0, "results[2][2] - k");
   assert.sameValue(results[1][3], sample, "results[2][3] - this");
 });
diff --git a/test/built-ins/TypedArray/prototype/reduceRight/callbackfn-no-iteration-over-non-integer-properties.js b/test/built-ins/TypedArray/prototype/reduceRight/callbackfn-no-iteration-over-non-integer-properties.js
index b81c9a91ed..c807f650a3 100644
--- a/test/built-ins/TypedArray/prototype/reduceRight/callbackfn-no-iteration-over-non-integer-properties.js
+++ b/test/built-ins/TypedArray/prototype/reduceRight/callbackfn-no-iteration-over-non-integer-properties.js
@@ -27,8 +27,8 @@ includes: [testTypedArray.js]
 features: [Symbol, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([7, 8]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([7, 8]));
 
   var results = [];
 
@@ -44,6 +44,6 @@ testWithTypedArrayConstructors(function(TA) {
   assert.sameValue(results[0][2], 1, "results[0][2] - k");
   assert.sameValue(results[1][2], 0, "results[1][2] - k");
 
-  assert.sameValue(results[0][1], 8, "results[0][1] - kValue");
-  assert.sameValue(results[1][1], 7, "results[1][1] - kValue");
+  assert.sameValue(results[0][1], N(8), "results[0][1] - kValue");
+  assert.sameValue(results[1][1], N(7), "results[1][1] - kValue");
 });
diff --git a/test/built-ins/TypedArray/prototype/reduceRight/callbackfn-return-does-not-change-instance.js b/test/built-ins/TypedArray/prototype/reduceRight/callbackfn-return-does-not-change-instance.js
index d1c746ffaf..294eb33ea6 100644
--- a/test/built-ins/TypedArray/prototype/reduceRight/callbackfn-return-does-not-change-instance.js
+++ b/test/built-ins/TypedArray/prototype/reduceRight/callbackfn-return-does-not-change-instance.js
@@ -8,14 +8,14 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([0, 1, 0]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([0, 1, 0]));
 
   sample.reduceRight(function() {
     return 42;
   }, 7);
 
-  assert.sameValue(sample[0], 0, "[0] == 0");
-  assert.sameValue(sample[1], 1, "[1] == 1");
-  assert.sameValue(sample[2], 0, "[2] == 0");
+  assert.sameValue(sample[0], N(0), "[0] == 0");
+  assert.sameValue(sample[1], N(1), "[1] == 1");
+  assert.sameValue(sample[2], N(0), "[2] == 0");
 });
diff --git a/test/built-ins/TypedArray/prototype/reduceRight/callbackfn-set-value-during-iteration.js b/test/built-ins/TypedArray/prototype/reduceRight/callbackfn-set-value-during-iteration.js
index 290f197c03..62c9ef47a3 100644
--- a/test/built-ins/TypedArray/prototype/reduceRight/callbackfn-set-value-during-iteration.js
+++ b/test/built-ins/TypedArray/prototype/reduceRight/callbackfn-set-value-during-iteration.js
@@ -18,24 +18,24 @@ includes: [testTypedArray.js]
 features: [Reflect.set, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43, 44]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43, 44]));
   var newVal = 0;
 
   sample.reduceRight(function(acc, val, i) {
     if (i < sample.length - 1) {
       assert.sameValue(
-        sample[i + 1], newVal - 1,
+        sample[i + 1], N(newVal - 1),
         "get the changed value during the loop"
       );
       assert.sameValue(
-        Reflect.set(sample, 2, 7),
+        Reflect.set(sample, 2, N(7)),
         true,
         "re-set a value for sample[2]"
       );
     }
     assert.sameValue(
-      Reflect.set(sample, i, newVal),
+      Reflect.set(sample, i, N(newVal)),
       true,
       "set value during iteration"
     );
@@ -43,7 +43,7 @@ testWithTypedArrayConstructors(function(TA) {
     newVal++;
   }, 0);
 
-  assert.sameValue(sample[0], 2, "changed values after iteration [0] == 2");
-  assert.sameValue(sample[1], 1, "changed values after iteration [1] == 1");
-  assert.sameValue(sample[2], 7, "changed values after iteration [2] == 7");
+  assert.sameValue(sample[0], N(2), "changed values after iteration [0] == 2");
+  assert.sameValue(sample[1], N(1), "changed values after iteration [1] == 1");
+  assert.sameValue(sample[2], N(7), "changed values after iteration [2] == 7");
 });
diff --git a/test/built-ins/TypedArray/prototype/reduceRight/get-length-uses-internal-arraylength.js b/test/built-ins/TypedArray/prototype/reduceRight/get-length-uses-internal-arraylength.js
index 32c560242c..b1ff04f5d6 100644
--- a/test/built-ins/TypedArray/prototype/reduceRight/get-length-uses-internal-arraylength.js
+++ b/test/built-ins/TypedArray/prototype/reduceRight/get-length-uses-internal-arraylength.js
@@ -30,8 +30,8 @@ var desc = {
 
 Object.defineProperty(TypedArray.prototype, "length", desc);
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43]));
   var calls = 0;
 
   Object.defineProperty(TA.prototype, "length", desc);
diff --git a/test/built-ins/TypedArray/prototype/reduceRight/result-is-last-callbackfn-return.js b/test/built-ins/TypedArray/prototype/reduceRight/result-is-last-callbackfn-return.js
index 67504f27be..41771b6f73 100644
--- a/test/built-ins/TypedArray/prototype/reduceRight/result-is-last-callbackfn-return.js
+++ b/test/built-ins/TypedArray/prototype/reduceRight/result-is-last-callbackfn-return.js
@@ -36,11 +36,11 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var calls, result;
 
   calls = 0;
-  result = new TA([1, 2, 3]).reduceRight(function() {
+  result = new TA(N([1, 2, 3])).reduceRight(function() {
     calls++;
 
     if (calls == 2) {
@@ -50,7 +50,7 @@ testWithTypedArrayConstructors(function(TA) {
   assert.sameValue(result, 42, "using default accumulator");
 
   calls = 0;
-  result = new TA([1, 2, 3]).reduceRight(function() {
+  result = new TA(N([1, 2, 3])).reduceRight(function() {
     calls++;
 
     if (calls == 3) {
diff --git a/test/built-ins/TypedArray/prototype/reduceRight/result-of-any-type.js b/test/built-ins/TypedArray/prototype/reduceRight/result-of-any-type.js
index a7f2d6df87..2cb4a4f62a 100644
--- a/test/built-ins/TypedArray/prototype/reduceRight/result-of-any-type.js
+++ b/test/built-ins/TypedArray/prototype/reduceRight/result-of-any-type.js
@@ -36,8 +36,8 @@ includes: [testTypedArray.js]
 features: [Symbol, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43, 44]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43, 44]));
   [
     ["test262", "string"],
     ["", "empty string"],
diff --git a/test/built-ins/TypedArray/prototype/reduceRight/return-first-value-without-callbackfn.js b/test/built-ins/TypedArray/prototype/reduceRight/return-first-value-without-callbackfn.js
index 7100baf43a..7992c27c32 100644
--- a/test/built-ins/TypedArray/prototype/reduceRight/return-first-value-without-callbackfn.js
+++ b/test/built-ins/TypedArray/prototype/reduceRight/return-first-value-without-callbackfn.js
@@ -32,12 +32,12 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var called = false;
-  var result = new TA([42]).reduceRight(function() {
+  var result = new TA(N([42])).reduceRight(function() {
     called = true;
   });
 
-  assert.sameValue(result, 42);
+  assert.sameValue(result, N(42));
   assert.sameValue(called, false);
 });
diff --git a/test/built-ins/TypedArray/prototype/reduceRight/values-are-not-cached.js b/test/built-ins/TypedArray/prototype/reduceRight/values-are-not-cached.js
index fb93d3e208..014ba87ddc 100644
--- a/test/built-ins/TypedArray/prototype/reduceRight/values-are-not-cached.js
+++ b/test/built-ins/TypedArray/prototype/reduceRight/values-are-not-cached.js
@@ -27,16 +27,16 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([44, 43, 42]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([44, 43, 42]));
 
   sample.reduceRight(function(a, v, i) {
     if (i > 0) {
-      sample[i-1] = 42;
+      sample[i-1] = N(42);
     }
 
     assert.sameValue(
-      v, 42, "method does not cache values before callbackfn calls"
+      v, N(42), "method does not cache values before callbackfn calls"
     );
   }, 0);
 });
diff --git a/test/built-ins/TypedArray/prototype/reverse/get-length-uses-internal-arraylength.js b/test/built-ins/TypedArray/prototype/reverse/get-length-uses-internal-arraylength.js
index 4a51f2ffbc..35150f2897 100644
--- a/test/built-ins/TypedArray/prototype/reverse/get-length-uses-internal-arraylength.js
+++ b/test/built-ins/TypedArray/prototype/reverse/get-length-uses-internal-arraylength.js
@@ -30,8 +30,8 @@ var desc = {
 
 Object.defineProperty(TypedArray.prototype, "length", desc);
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43]));
 
   Object.defineProperty(TA.prototype, "length", desc);
   Object.defineProperty(sample, "length", desc);
diff --git a/test/built-ins/TypedArray/prototype/reverse/reverts.js b/test/built-ins/TypedArray/prototype/reverse/reverts.js
index 5bec740e5b..be321a62fa 100644
--- a/test/built-ins/TypedArray/prototype/reverse/reverts.js
+++ b/test/built-ins/TypedArray/prototype/reverse/reverts.js
@@ -21,37 +21,37 @@ features: [TypedArray]
 
 var buffer = new ArrayBuffer(64);
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample = new TA(buffer, 0, 4);
   var other = new TA(buffer, 0, 5);
 
-  sample[0] = 42;
-  sample[1] = 43;
-  sample[2] = 2;
-  sample[3] = 1;
-  other[4] = 7;
+  sample[0] = N(42);
+  sample[1] = N(43);
+  sample[2] = N(2);
+  sample[3] = N(1);
+  other[4] = N(7);
 
   sample.reverse();
   assert(
-    compareArray(sample, [1, 2, 43, 42])
+    compareArray(sample, N([1, 2, 43, 42]))
   );
 
   assert(
-    compareArray(other, [1, 2, 43, 42, 7])
+    compareArray(other, N([1, 2, 43, 42, 7]))
   );
 
-  sample[0] = 7;
-  sample[1] = 17;
-  sample[2] = 1;
-  sample[3] = 0;
-  other[4] = 42;
+  sample[0] = N(7);
+  sample[1] = N(17);
+  sample[2] = N(1);
+  sample[3] = N(0);
+  other[4] = N(42);
 
   other.reverse();
   assert(
-    compareArray(other, [42, 0, 1, 17, 7])
+    compareArray(other, N([42, 0, 1, 17, 7]))
   );
 
   assert(
-    compareArray(sample, [42, 0, 1, 17])
+    compareArray(sample, N([42, 0, 1, 17]))
   );
 });
diff --git a/test/built-ins/TypedArray/prototype/set/array-arg-offset-tointeger.js b/test/built-ins/TypedArray/prototype/set/array-arg-offset-tointeger.js
index a5ab527732..c0e88a13d0 100644
--- a/test/built-ins/TypedArray/prototype/set/array-arg-offset-tointeger.js
+++ b/test/built-ins/TypedArray/prototype/set/array-arg-offset-tointeger.js
@@ -18,78 +18,78 @@ includes: [testTypedArray.js, compareArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample;
 
-  sample = new TA([1, 2]);
-  sample.set([42], "");
-  assert(compareArray(sample, [42, 2]), "the empty string");
+  sample = new TA(N([1, 2]));
+  sample.set([N(42)], "");
+  assert(compareArray(sample, N([42, 2])), "the empty string");
 
-  sample = new TA([1, 2]);
-  sample.set([42], "0");
-  assert(compareArray(sample, [42, 2]), "'0'");
+  sample = new TA(N([1, 2]));
+  sample.set([N(42)], "0");
+  assert(compareArray(sample, N([42, 2])), "'0'");
 
-  sample = new TA([1, 2]);
-  sample.set([42], false);
-  assert(compareArray(sample, [42, 2]), "false");
+  sample = new TA(N([1, 2]));
+  sample.set([N(42)], false);
+  assert(compareArray(sample, N([42, 2])), "false");
 
-  sample = new TA([1, 2]);
-  sample.set([42], 0.1);
-  assert(compareArray(sample, [42, 2]), "0.1");
+  sample = new TA(N([1, 2]));
+  sample.set([N(42)], 0.1);
+  assert(compareArray(sample, N([42, 2])), "0.1");
 
-  sample = new TA([1, 2]);
-  sample.set([42], 0.9);
-  assert(compareArray(sample, [42, 2]), "0.9");
+  sample = new TA(N([1, 2]));
+  sample.set([N(42)], 0.9);
+  assert(compareArray(sample, N([42, 2])), "0.9");
 
-  sample = new TA([1, 2]);
-  sample.set([42], -0.5);
-  assert(compareArray(sample, [42, 2]), "-0.5");
+  sample = new TA(N([1, 2]));
+  sample.set([N(42)], -0.5);
+  assert(compareArray(sample, N([42, 2])), "-0.5");
 
-  sample = new TA([1, 2]);
-  sample.set([42], 1.1);
-  assert(compareArray(sample, [1, 42]), "1.1");
+  sample = new TA(N([1, 2]));
+  sample.set([N(42)], 1.1);
+  assert(compareArray(sample, N([1, 42])), "1.1");
 
-  sample = new TA([1, 2]);
-  sample.set([42], NaN);
-  assert(compareArray(sample, [42, 2]), "NaN");
+  sample = new TA(N([1, 2]));
+  sample.set([N(42)], NaN);
+  assert(compareArray(sample, N([42, 2])), "NaN");
 
-  sample = new TA([1, 2]);
-  sample.set([42], null);
-  assert(compareArray(sample, [42, 2]), "null");
+  sample = new TA(N([1, 2]));
+  sample.set([N(42)], null);
+  assert(compareArray(sample, N([42, 2])), "null");
 
-  sample = new TA([1, 2]);
-  sample.set([42], undefined);
-  assert(compareArray(sample, [42, 2]), "undefined");
+  sample = new TA(N([1, 2]));
+  sample.set([N(42)], undefined);
+  assert(compareArray(sample, N([42, 2])), "undefined");
 
-  sample = new TA([1, 2]);
-  sample.set([42], {});
-  assert(compareArray(sample, [42, 2]), "{}");
+  sample = new TA(N([1, 2]));
+  sample.set([N(42)], {});
+  assert(compareArray(sample, N([42, 2])), "{}");
 
-  sample = new TA([1, 2]);
-  sample.set([42], []);
-  assert(compareArray(sample, [42, 2]), "[]");
+  sample = new TA(N([1, 2]));
+  sample.set([N(42)], []);
+  assert(compareArray(sample, N([42, 2])), "[]");
 
-  sample = new TA([1, 2]);
-  sample.set([42], [0]);
-  assert(compareArray(sample, [42, 2]), "[0]");
+  sample = new TA(N([1, 2]));
+  sample.set([N(42)], [0]);
+  assert(compareArray(sample, N([42, 2])), "[0]");
 
-  sample = new TA([1, 2]);
-  sample.set([42], true);
-  assert(compareArray(sample, [1, 42]), "true");
+  sample = new TA(N([1, 2]));
+  sample.set([N(42)], true);
+  assert(compareArray(sample, N([1, 42])), "true");
 
-  sample = new TA([1, 2]);
-  sample.set([42], "1");
-  assert(compareArray(sample, [1, 42]), "'1'");
+  sample = new TA(N([1, 2]));
+  sample.set([N(42)], "1");
+  assert(compareArray(sample, N([1, 42])), "'1'");
 
-  sample = new TA([1, 2]);
-  sample.set([42], [1]);
-  assert(compareArray(sample, [1, 42]), "[1]");
+  sample = new TA(N([1, 2]));
+  sample.set([N(42)], [1]);
+  assert(compareArray(sample, N([1, 42])), "[1]");
 
-  sample = new TA([1, 2]);
-  sample.set([42], { valueOf: function() {return 1;} });
-  assert(compareArray(sample, [1, 42]), "valueOf");
+  sample = new TA(N([1, 2]));
+  sample.set([N(42)], { valueOf: function() {return 1;} });
+  assert(compareArray(sample, N([1, 42])), "valueOf");
 
-  sample = new TA([1, 2]);
-  sample.set([42], { toString: function() {return 1;} });
-  assert(compareArray(sample, [1, 42]), "toString");
+  sample = new TA(N([1, 2]));
+  sample.set([N(42)], { toString: function() {return 1;} });
+  assert(compareArray(sample, N([1, 42])), "toString");
 });
diff --git a/test/built-ins/TypedArray/prototype/set/array-arg-return-abrupt-from-src-get-length.js b/test/built-ins/TypedArray/prototype/set/array-arg-return-abrupt-from-src-get-length.js
index 2c67c5cc40..e4b1b77268 100644
--- a/test/built-ins/TypedArray/prototype/set/array-arg-return-abrupt-from-src-get-length.js
+++ b/test/built-ins/TypedArray/prototype/set/array-arg-return-abrupt-from-src-get-length.js
@@ -24,8 +24,8 @@ Object.defineProperty(obj, "length", {
   }
 });
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([1, 2, 3]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([1, 2, 3]));
 
   assert.throws(Test262Error, function() {
     sample.set(obj);
diff --git a/test/built-ins/TypedArray/prototype/set/array-arg-return-abrupt-from-src-get-value.js b/test/built-ins/TypedArray/prototype/set/array-arg-return-abrupt-from-src-get-value.js
index e470462478..c96f7bcb9f 100644
--- a/test/built-ins/TypedArray/prototype/set/array-arg-return-abrupt-from-src-get-value.js
+++ b/test/built-ins/TypedArray/prototype/set/array-arg-return-abrupt-from-src-get-value.js
@@ -22,27 +22,27 @@ includes: [testTypedArray.js, compareArray.js]
 features: [TypedArray]
 ---*/
 
-var obj = {
-  length: 4,
-  "0": 42,
-  "1": 43,
-  "3": 44
-};
-Object.defineProperty(obj, "2", {
-  get: function() {
-    throw new Test262Error();
-  }
-});
+testWithTypedArrayConstructors(function(TA, N) {
+  var obj = {
+      length: 4,
+      "0": N(42),
+      "1": N(43),
+      "3": N(44)
+    };
+    Object.defineProperty(obj, "2", {
+      get: function() {
+        throw new Test262Error();
+      }
+    });
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([1, 2, 3, 4]);
+  var sample = new TA(N([1, 2, 3, 4]));
 
   assert.throws(Test262Error, function() {
     sample.set(obj);
   });
 
   assert(
-    compareArray(sample, [42, 43, 3, 4]),
+    compareArray(sample, N([42, 43, 3, 4])),
     "values are set until exception"
   );
 });
diff --git a/test/built-ins/TypedArray/prototype/set/array-arg-return-abrupt-from-src-length-symbol.js b/test/built-ins/TypedArray/prototype/set/array-arg-return-abrupt-from-src-length-symbol.js
index f5b2289d8d..a1c8bd7955 100644
--- a/test/built-ins/TypedArray/prototype/set/array-arg-return-abrupt-from-src-length-symbol.js
+++ b/test/built-ins/TypedArray/prototype/set/array-arg-return-abrupt-from-src-length-symbol.js
@@ -21,8 +21,8 @@ var obj = {
   length: Symbol("1")
 };
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([1, 2, 3]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([1, 2, 3]));
 
   assert.throws(TypeError, function() {
     sample.set(obj);
diff --git a/test/built-ins/TypedArray/prototype/set/array-arg-return-abrupt-from-src-length.js b/test/built-ins/TypedArray/prototype/set/array-arg-return-abrupt-from-src-length.js
index 8252ebbef6..bac8f5b74b 100644
--- a/test/built-ins/TypedArray/prototype/set/array-arg-return-abrupt-from-src-length.js
+++ b/test/built-ins/TypedArray/prototype/set/array-arg-return-abrupt-from-src-length.js
@@ -33,8 +33,8 @@ var obj2 = {
   }
 };
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([1, 2, 3]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([1, 2, 3]));
 
   assert.throws(Test262Error, function() {
     sample.set(obj1);
diff --git a/test/built-ins/TypedArray/prototype/set/array-arg-return-abrupt-from-src-tonumber-value-symbol.js b/test/built-ins/TypedArray/prototype/set/array-arg-return-abrupt-from-src-tonumber-value-symbol.js
index 250b66c0b4..db48b41d7f 100644
--- a/test/built-ins/TypedArray/prototype/set/array-arg-return-abrupt-from-src-tonumber-value-symbol.js
+++ b/test/built-ins/TypedArray/prototype/set/array-arg-return-abrupt-from-src-tonumber-value-symbol.js
@@ -22,23 +22,23 @@ includes: [testTypedArray.js, compareArray.js]
 features: [Symbol, TypedArray]
 ---*/
 
-var obj = {
-  length: 4,
-  "0": 42,
-  "1": 43,
-  "2": Symbol("1"),
-  "3": 44
-};
+testWithTypedArrayConstructors(function(TA, N) {
+  var obj = {
+      length: 4,
+      "0": N(42),
+      "1": N(43),
+      "2": Symbol("1"),
+      "3": N(44)
+  };
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([1, 2, 3, 4]);
+  var sample = new TA(N([1, 2, 3, 4]));
 
   assert.throws(TypeError, function() {
     sample.set(obj);
   });
 
   assert(
-    compareArray(sample, [42, 43, 3, 4]),
+    compareArray(sample, N([42, 43, 3, 4])),
     "values are set until exception"
   );
 });
diff --git a/test/built-ins/TypedArray/prototype/set/array-arg-return-abrupt-from-src-tonumber-value.js b/test/built-ins/TypedArray/prototype/set/array-arg-return-abrupt-from-src-tonumber-value.js
index 535841f580..6348580e2f 100644
--- a/test/built-ins/TypedArray/prototype/set/array-arg-return-abrupt-from-src-tonumber-value.js
+++ b/test/built-ins/TypedArray/prototype/set/array-arg-return-abrupt-from-src-tonumber-value.js
@@ -22,27 +22,27 @@ includes: [testTypedArray.js, compareArray.js]
 features: [TypedArray]
 ---*/
 
-var obj = {
-  length: 4,
-  "0": 42,
-  "1": 43,
-  "2": {
-    valueOf: function() {
-      throw new Test262Error();
-    }
-  },
-  "3": 44
-};
+testWithTypedArrayConstructors(function(TA, N) {
+  var obj = {
+      length: 4,
+      "0": N(42),
+      "1": N(43),
+      "2": {
+        valueOf: function() {
+          throw new Test262Error();
+        }
+      },
+      "3": N(44)
+  };
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([1, 2, 3, 4]);
+  var sample = new TA(N([1, 2, 3, 4]));
 
   assert.throws(Test262Error, function() {
     sample.set(obj);
   });
 
   assert(
-    compareArray(sample, [42, 43, 3, 4]),
+    compareArray(sample, N([42, 43, 3, 4])),
     "values are set until exception"
   );
 });
diff --git a/test/built-ins/TypedArray/prototype/set/array-arg-return-abrupt-from-toobject-offset.js b/test/built-ins/TypedArray/prototype/set/array-arg-return-abrupt-from-toobject-offset.js
index d367123939..78a3c00d09 100644
--- a/test/built-ins/TypedArray/prototype/set/array-arg-return-abrupt-from-toobject-offset.js
+++ b/test/built-ins/TypedArray/prototype/set/array-arg-return-abrupt-from-toobject-offset.js
@@ -17,8 +17,8 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([1, 2, 3]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([1, 2, 3]));
 
   assert.throws(TypeError, function() {
     sample.set(undefined);
diff --git a/test/built-ins/TypedArray/prototype/set/array-arg-set-values-in-order.js b/test/built-ins/TypedArray/prototype/set/array-arg-set-values-in-order.js
index 9c1603a30d..95ef44d9f1 100644
--- a/test/built-ins/TypedArray/prototype/set/array-arg-set-values-in-order.js
+++ b/test/built-ins/TypedArray/prototype/set/array-arg-set-values-in-order.js
@@ -22,7 +22,7 @@ includes: [testTypedArray.js, compareArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample = new TA(5);
   var calls = [];
   var obj = {
@@ -32,7 +32,7 @@ testWithTypedArrayConstructors(function(TA) {
     get: function() {
       calls.push(0);
       calls.push(sample.join());
-      return 42;
+      return N(42);
     }
   });
 
@@ -40,7 +40,7 @@ testWithTypedArrayConstructors(function(TA) {
     get: function() {
       calls.push(1);
       calls.push(sample.join());
-      return 43;
+      return N(43);
     }
   });
 
@@ -48,7 +48,7 @@ testWithTypedArrayConstructors(function(TA) {
     get: function() {
       calls.push(2);
       calls.push(sample.join());
-      return 44;
+      return N(44);
     }
   });
 
@@ -61,7 +61,7 @@ testWithTypedArrayConstructors(function(TA) {
   sample.set(obj, 1);
 
   assert(
-    compareArray(sample, [0, 42, 43, 44, 0]),
+    compareArray(sample, N([0, 42, 43, 44, 0])),
     "values are set for src length"
   );
 
diff --git a/test/built-ins/TypedArray/prototype/set/array-arg-set-values.js b/test/built-ins/TypedArray/prototype/set/array-arg-set-values.js
index 6e53dbc94e..5490305d0c 100644
--- a/test/built-ins/TypedArray/prototype/set/array-arg-set-values.js
+++ b/test/built-ins/TypedArray/prototype/set/array-arg-set-values.js
@@ -22,42 +22,42 @@ includes: [testTypedArray.js, compareArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var src = [42, 43];
+testWithTypedArrayConstructors(function(TA, N) {
+  var src = N([42, 43]);
   var srcObj = {
     length: 2,
-    '0': 7,
-    '1': 17
+    '0': N(7),
+    '1': N(17)
   };
   var sample, result;
 
-  sample = new TA([1, 2, 3, 4]);
+  sample = new TA(N([1, 2, 3, 4]));
   result = sample.set(src, 0);
-  assert(compareArray(sample, [42, 43, 3, 4]), "offset: 0, result: " + sample);
+  assert(compareArray(sample, N([42, 43, 3, 4])), "offset: 0, result: " + sample);
   assert.sameValue(result, undefined, "returns undefined");
 
-  sample = new TA([1, 2, 3, 4]);
+  sample = new TA(N([1, 2, 3, 4]));
   result = sample.set(src, 1);
-  assert(compareArray(sample, [1, 42, 43, 4]), "offset: 1, result: " + sample);
+  assert(compareArray(sample, N([1, 42, 43, 4])), "offset: 1, result: " + sample);
   assert.sameValue(result, undefined, "returns undefined");
 
-  sample = new TA([1, 2, 3, 4]);
+  sample = new TA(N([1, 2, 3, 4]));
   result = sample.set(src, 2);
-  assert(compareArray(sample, [1, 2, 42, 43]), "offset: 2, result: " + sample);
+  assert(compareArray(sample, N([1, 2, 42, 43])), "offset: 2, result: " + sample);
   assert.sameValue(result, undefined, "returns undefined");
 
-  sample = new TA([1, 2, 3, 4]);
+  sample = new TA(N([1, 2, 3, 4]));
   result = sample.set(srcObj, 0);
-  assert(compareArray(sample, [7, 17, 3, 4]), "offset: 0, result: " + sample);
+  assert(compareArray(sample, N([7, 17, 3, 4])), "offset: 0, result: " + sample);
   assert.sameValue(result, undefined, "returns undefined");
 
-  sample = new TA([1, 2, 3, 4]);
+  sample = new TA(N([1, 2, 3, 4]));
   result = sample.set(srcObj, 1);
-  assert(compareArray(sample, [1, 7, 17, 4]), "offset: 1, result: " + sample);
+  assert(compareArray(sample, N([1, 7, 17, 4])), "offset: 1, result: " + sample);
   assert.sameValue(result, undefined, "returns undefined");
 
-  sample = new TA([1, 2, 3, 4]);
+  sample = new TA(N([1, 2, 3, 4]));
   result = sample.set(srcObj, 2);
-  assert(compareArray(sample, [1, 2, 7, 17]), "offset: 2, result: " + sample);
+  assert(compareArray(sample, N([1, 2, 7, 17])), "offset: 2, result: " + sample);
   assert.sameValue(result, undefined, "returns undefined");
 });
diff --git a/test/built-ins/TypedArray/prototype/set/array-arg-src-tonumber-value-type-conversions.js b/test/built-ins/TypedArray/prototype/set/array-arg-src-tonumber-value-type-conversions.js
index 0256df84e2..78ed1b4559 100644
--- a/test/built-ins/TypedArray/prototype/set/array-arg-src-tonumber-value-type-conversions.js
+++ b/test/built-ins/TypedArray/prototype/set/array-arg-src-tonumber-value-type-conversions.js
@@ -22,24 +22,30 @@ includes: [testTypedArray.js, compareArray.js]
 features: [TypedArray]
 ---*/
 
-var obj1 = {
-  valueOf: function() {
-    return 42;
-  }
-};
+testWithTypedArrayConstructors(function(TA, N) {
+  var obj1 = {
+      valueOf: function() {
+        return N(42);
+      }
+  };
 
-var obj2 = {
-  toString: function() {
-    return 42;
-  }
-};
+  var obj2 = {
+      toString: function() {
+        return "42";
+      }
+  };
 
-// undefined and NaN covered on typedArrayConversions
-var arr = ["1", "", false, true, null, obj1, obj2, [], [1]];
+  // undefined and NaN covered on typedArrayConversions
+  var nullish;
+  try {
+    nullish = N(null);
+  } catch (e) {
+    nullish = 0n;
+  }
+  var arr = ["1", "", false, true, nullish, obj1, obj2, [], [1]];
 
-testWithTypedArrayConstructors(function(TA) {
   var sample = new TA(arr.length);
-  var expected = new TA([1, 0, 0, 1, 0, 42, 42, 0, 1]);
+  var expected = new TA(N([1, 0, 0, 1, 0, 42, 42, 0, 1]));
 
   sample.set(arr);
 
diff --git a/test/built-ins/TypedArray/prototype/set/array-arg-src-values-are-not-cached.js b/test/built-ins/TypedArray/prototype/set/array-arg-src-values-are-not-cached.js
index a3750490f1..8931748ec3 100644
--- a/test/built-ins/TypedArray/prototype/set/array-arg-src-values-are-not-cached.js
+++ b/test/built-ins/TypedArray/prototype/set/array-arg-src-values-are-not-cached.js
@@ -22,26 +22,26 @@ includes: [testTypedArray.js, compareArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample = new TA(5);
   var obj = {
     length: 5,
-    '1': 7,
-    '2': 7,
-    '3': 7,
-    '4': 7
+    '1': N(7),
+    '2': N(7),
+    '3': N(7),
+    '4': N(7)
   };
   Object.defineProperty(obj, 0, {
     get: function() {
-      obj[1] = 43;
-      obj[2] = 44;
-      obj[3] = 45;
-      obj[4] = 46;
-      return 42;
+      obj[1] = N(43);
+      obj[2] = N(44);
+      obj[3] = N(45);
+      obj[4] = N(46);
+      return N(42);
     }
   });
 
   sample.set(obj);
 
-  assert(compareArray(sample, [42, 43, 44, 45, 46]));
+  assert(compareArray(sample, N([42, 43, 44, 45, 46])));
 });
diff --git a/test/built-ins/TypedArray/prototype/set/array-arg-target-arraylength-internal.js b/test/built-ins/TypedArray/prototype/set/array-arg-target-arraylength-internal.js
index 97bead5c9e..4a6e1ee399 100644
--- a/test/built-ins/TypedArray/prototype/set/array-arg-target-arraylength-internal.js
+++ b/test/built-ins/TypedArray/prototype/set/array-arg-target-arraylength-internal.js
@@ -29,13 +29,13 @@ var desc = {
 
 Object.defineProperty(TypedArray.prototype, "length", desc);
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample = new TA(2);
 
   Object.defineProperty(TA.prototype, "length", desc);
   Object.defineProperty(sample, "length", desc);
 
-  sample.set([42, 43]);
+  sample.set(N([42, 43]));
 
   assert.sameValue(getCalls, 0, "ignores length properties");
 });
diff --git a/test/built-ins/TypedArray/prototype/set/array-arg-targetbuffer-detached-on-get-src-value-throws.js b/test/built-ins/TypedArray/prototype/set/array-arg-targetbuffer-detached-on-get-src-value-throws.js
index eed7db0831..e77c0bdfd4 100644
--- a/test/built-ins/TypedArray/prototype/set/array-arg-targetbuffer-detached-on-get-src-value-throws.js
+++ b/test/built-ins/TypedArray/prototype/set/array-arg-targetbuffer-detached-on-get-src-value-throws.js
@@ -22,11 +22,11 @@ includes: [testTypedArray.js, detachArrayBuffer.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([1, 2, 3]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([1, 2, 3]));
   var obj = {
     length: 3,
-    "0": 42
+    "0": N(42)
   };
   Object.defineProperty(obj, 1, {
     get: function() {
diff --git a/test/built-ins/TypedArray/prototype/set/typedarray-arg-offset-tointeger.js b/test/built-ins/TypedArray/prototype/set/typedarray-arg-offset-tointeger.js
index 7f63cb9960..2bdb3ded3b 100644
--- a/test/built-ins/TypedArray/prototype/set/typedarray-arg-offset-tointeger.js
+++ b/test/built-ins/TypedArray/prototype/set/typedarray-arg-offset-tointeger.js
@@ -15,79 +15,79 @@ includes: [testTypedArray.js, compareArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample;
-  var src = new TA([42]);
+  var src = new TA(N([42]));
 
-  sample = new TA([1, 2]);
+  sample = new TA(N([1, 2]));
   sample.set(src, "");
-  assert(compareArray(sample, [42, 2]), "the empty string");
+  assert(compareArray(sample, N([42, 2])), "the empty string");
 
-  sample = new TA([1, 2]);
+  sample = new TA(N([1, 2]));
   sample.set(src, "0");
-  assert(compareArray(sample, [42, 2]), "'0'");
+  assert(compareArray(sample, N([42, 2])), "'0'");
 
-  sample = new TA([1, 2]);
+  sample = new TA(N([1, 2]));
   sample.set(src, false);
-  assert(compareArray(sample, [42, 2]), "false");
+  assert(compareArray(sample, N([42, 2])), "false");
 
-  sample = new TA([1, 2]);
+  sample = new TA(N([1, 2]));
   sample.set(src, 0.1);
-  assert(compareArray(sample, [42, 2]), "0.1");
+  assert(compareArray(sample, N([42, 2])), "0.1");
 
-  sample = new TA([1, 2]);
+  sample = new TA(N([1, 2]));
   sample.set(src, 0.9);
-  assert(compareArray(sample, [42, 2]), "0.9");
+  assert(compareArray(sample, N([42, 2])), "0.9");
 
-  sample = new TA([1, 2]);
+  sample = new TA(N([1, 2]));
   sample.set(src, -0.5);
-  assert(compareArray(sample, [42, 2]), "-0.5");
+  assert(compareArray(sample, N([42, 2])), "-0.5");
 
-  sample = new TA([1, 2]);
+  sample = new TA(N([1, 2]));
   sample.set(src, 1.1);
-  assert(compareArray(sample, [1, 42]), "1.1");
+  assert(compareArray(sample, N([1, 42])), "1.1");
 
-  sample = new TA([1, 2]);
+  sample = new TA(N([1, 2]));
   sample.set(src, NaN);
-  assert(compareArray(sample, [42, 2]), "NaN");
+  assert(compareArray(sample, N([42, 2])), "NaN");
 
-  sample = new TA([1, 2]);
+  sample = new TA(N([1, 2]));
   sample.set(src, null);
-  assert(compareArray(sample, [42, 2]), "null");
+  assert(compareArray(sample, N([42, 2])), "null");
 
-  sample = new TA([1, 2]);
+  sample = new TA(N([1, 2]));
   sample.set(src, undefined);
-  assert(compareArray(sample, [42, 2]), "undefined");
+  assert(compareArray(sample, N([42, 2])), "undefined");
 
-  sample = new TA([1, 2]);
+  sample = new TA(N([1, 2]));
   sample.set(src, {});
-  assert(compareArray(sample, [42, 2]), "{}");
+  assert(compareArray(sample, N([42, 2])), "{}");
 
-  sample = new TA([1, 2]);
+  sample = new TA(N([1, 2]));
   sample.set(src, []);
-  assert(compareArray(sample, [42, 2]), "[]");
+  assert(compareArray(sample, N([42, 2])), "[]");
 
-  sample = new TA([1, 2]);
+  sample = new TA(N([1, 2]));
   sample.set(src, [0]);
-  assert(compareArray(sample, [42, 2]), "[0]");
+  assert(compareArray(sample, N([42, 2])), "[0]");
 
-  sample = new TA([1, 2]);
+  sample = new TA(N([1, 2]));
   sample.set(src, true);
-  assert(compareArray(sample, [1, 42]), "true");
+  assert(compareArray(sample, N([1, 42])), "true");
 
-  sample = new TA([1, 2]);
+  sample = new TA(N([1, 2]));
   sample.set(src, "1");
-  assert(compareArray(sample, [1, 42]), "'1'");
+  assert(compareArray(sample, N([1, 42])), "'1'");
 
-  sample = new TA([1, 2]);
+  sample = new TA(N([1, 2]));
   sample.set(src, [1]);
-  assert(compareArray(sample, [1, 42]), "[1]");
+  assert(compareArray(sample, N([1, 42])), "[1]");
 
-  sample = new TA([1, 2]);
+  sample = new TA(N([1, 2]));
   sample.set(src, { valueOf: function() {return 1;} });
-  assert(compareArray(sample, [1, 42]), "valueOf");
+  assert(compareArray(sample, N([1, 42])), "valueOf");
 
-  sample = new TA([1, 2]);
+  sample = new TA(N([1, 2]));
   sample.set(src, { toString: function() {return 1;} });
-  assert(compareArray(sample, [1, 42]), "toString");
+  assert(compareArray(sample, N([1, 42])), "toString");
 });
diff --git a/test/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-diff-buffer-other-type.js b/test/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-diff-buffer-other-type.js
index 04ddb52371..4f21a918df 100644
--- a/test/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-diff-buffer-other-type.js
+++ b/test/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-diff-buffer-other-type.js
@@ -26,23 +26,26 @@ includes: [testTypedArray.js, compareArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var other = TA === Float32Array ? Float64Array : Float32Array;
-  var src = new other([42, 43]);
+  if (typeof BigInt !== "undefined")
+    other = TA === BigInt64Array ? BigUint64Array :
+            TA === BigUint64Array ? BigInt64Array : other;
+  var src = new other(N([42, 43]));
   var sample, result;
 
-  sample = new TA([1, 2, 3, 4]);
+  sample = new TA(N([1, 2, 3, 4]));
   result = sample.set(src, 0);
-  assert(compareArray(sample, [42, 43, 3, 4]), "offset: 0, result: " + sample);
+  assert(compareArray(sample, N([42, 43, 3, 4])), "offset: 0, result: " + sample);
   assert.sameValue(result, undefined, "returns undefined");
 
-  sample = new TA([1, 2, 3, 4]);
+  sample = new TA(N([1, 2, 3, 4]));
   result = sample.set(src, 1);
-  assert(compareArray(sample, [1, 42, 43, 4]), "offset: 1, result: " + sample);
+  assert(compareArray(sample, N([1, 42, 43, 4])), "offset: 1, result: " + sample);
   assert.sameValue(result, undefined, "returns undefined");
 
-  sample = new TA([1, 2, 3, 4]);
+  sample = new TA(N([1, 2, 3, 4]));
   result = sample.set(src, 2);
-  assert(compareArray(sample, [1, 2, 42, 43]), "offset: 2, result: " + sample);
+  assert(compareArray(sample, N([1, 2, 42, 43])), "offset: 2, result: " + sample);
   assert.sameValue(result, undefined, "returns undefined");
 });
diff --git a/test/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-diff-buffer-same-type.js b/test/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-diff-buffer-same-type.js
index b915747855..4dcde7c092 100644
--- a/test/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-diff-buffer-same-type.js
+++ b/test/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-diff-buffer-same-type.js
@@ -29,22 +29,22 @@ includes: [testTypedArray.js, compareArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample, result;
-  var src = new TA([42, 43]);
+  var src = new TA(N([42, 43]));
 
-  sample = new TA([1, 2, 3, 4]);
+  sample = new TA(N([1, 2, 3, 4]));
   result = sample.set(src, 1);
-  assert(compareArray(sample, [1, 42, 43, 4]), "offset: 1, result: " + sample);
+  assert(compareArray(sample, N([1, 42, 43, 4])), "offset: 1, result: " + sample);
   assert.sameValue(result, undefined, "returns undefined");
 
-  sample = new TA([1, 2, 3, 4]);
+  sample = new TA(N([1, 2, 3, 4]));
   result = sample.set(src, 0);
-  assert(compareArray(sample, [42, 43, 3, 4]), "offset: 0, result: " + sample);
+  assert(compareArray(sample, N([42, 43, 3, 4])), "offset: 0, result: " + sample);
   assert.sameValue(result, undefined, "returns undefined");
 
-  sample = new TA([1, 2, 3, 4]);
+  sample = new TA(N([1, 2, 3, 4]));
   result = sample.set(src, 2);
-  assert(compareArray(sample, [1, 2, 42, 43]), "offset: 2, result: " + sample);
+  assert(compareArray(sample, N([1, 2, 42, 43])), "offset: 2, result: " + sample);
   assert.sameValue(result, undefined, "returns undefined");
 });
diff --git a/test/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type.js b/test/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type.js
index 45d648c1a2..9ea3f3ef08 100644
--- a/test/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type.js
+++ b/test/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-other-type.js
@@ -56,4 +56,4 @@ testWithTypedArrayConstructors(function(TA) {
 
   assert(compareArray(sample, expected[TA.name]), sample);
   assert.sameValue(result, undefined, "returns undefined");
-});
+}, numericTypedArrayConstructors);
diff --git a/test/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-same-type.js b/test/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-same-type.js
index 02d15ddee9..bd3256da60 100644
--- a/test/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-same-type.js
+++ b/test/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-same-type.js
@@ -30,24 +30,24 @@ includes: [testTypedArray.js, compareArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample, src, result;
 
-  sample = new TA([1, 2, 3, 4]);
+  sample = new TA(N([1, 2, 3, 4]));
   src = new TA(sample.buffer, 0, 2);
   result = sample.set(src, 0);
-  assert(compareArray(sample, [1, 2, 3, 4]), "offset: 0, result: " + sample);
+  assert(compareArray(sample, N([1, 2, 3, 4])), "offset: 0, result: " + sample);
   assert.sameValue(result, undefined, "returns undefined");
 
-  sample = new TA([1, 2, 3, 4]);
+  sample = new TA(N([1, 2, 3, 4]));
   src = new TA(sample.buffer, 0, 2);
   result = sample.set(src, 1);
-  assert(compareArray(sample, [1, 1, 2, 4]), "offset: 1, result: " + sample);
+  assert(compareArray(sample, N([1, 1, 2, 4])), "offset: 1, result: " + sample);
   assert.sameValue(result, undefined, "returns undefined");
 
-  sample = new TA([1, 2, 3, 4]);
+  sample = new TA(N([1, 2, 3, 4]));
   src = new TA(sample.buffer, 0, 2);
   result = sample.set(src, 2);
-  assert(compareArray(sample, [1, 2, 1, 2]), "offset: 2, result: " + sample);
+  assert(compareArray(sample, N([1, 2, 1, 2])), "offset: 2, result: " + sample);
   assert.sameValue(result, undefined, "returns undefined");
 });
diff --git a/test/built-ins/TypedArray/prototype/set/typedarray-arg-src-arraylength-internal.js b/test/built-ins/TypedArray/prototype/set/typedarray-arg-src-arraylength-internal.js
index 864172b96c..0009dae864 100644
--- a/test/built-ins/TypedArray/prototype/set/typedarray-arg-src-arraylength-internal.js
+++ b/test/built-ins/TypedArray/prototype/set/typedarray-arg-src-arraylength-internal.js
@@ -28,9 +28,9 @@ var desc = {
 
 Object.defineProperty(TypedArray.prototype, "length", desc);
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample = new TA(2);
-  var src = new TA([42, 43]);
+  var src = new TA(N([42, 43]));
 
   Object.defineProperty(TA.prototype, "length", desc);
   Object.defineProperty(src, "length", desc);
diff --git a/test/built-ins/TypedArray/prototype/set/typedarray-arg-src-byteoffset-internal.js b/test/built-ins/TypedArray/prototype/set/typedarray-arg-src-byteoffset-internal.js
index c3bfdeb28e..811c2c86a9 100644
--- a/test/built-ins/TypedArray/prototype/set/typedarray-arg-src-byteoffset-internal.js
+++ b/test/built-ins/TypedArray/prototype/set/typedarray-arg-src-byteoffset-internal.js
@@ -25,11 +25,14 @@ var desc = {
 
 Object.defineProperty(TypedArray.prototype, "byteOffset", desc);
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample = new TA(2);
-  var src = new TA([42, 43]);
+  var src = new TA(N([42, 43]));
   var differentTA = TA === Uint8Array ? Int8Array : Uint8Array;
-  var src2 = new differentTA([42, 43]);
+  if (typeof BigInt !== "undefined")
+    differentTA = TA === BigInt64Array ? BigUint64Array :
+                  TA === BigUint64Array ? BigInt64Array : differentTA;
+  var src2 = new differentTA(N([42, 43]));
   var src3 = new differentTA(sample.buffer, 0, 2);
 
   Object.defineProperty(TA.prototype, "byteOffset", desc);
diff --git a/test/built-ins/TypedArray/prototype/set/typedarray-arg-target-arraylength-internal.js b/test/built-ins/TypedArray/prototype/set/typedarray-arg-target-arraylength-internal.js
index fe251f1f17..df8f068598 100644
--- a/test/built-ins/TypedArray/prototype/set/typedarray-arg-target-arraylength-internal.js
+++ b/test/built-ins/TypedArray/prototype/set/typedarray-arg-target-arraylength-internal.js
@@ -29,9 +29,9 @@ var desc = {
 
 Object.defineProperty(TypedArray.prototype, "length", desc);
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample = new TA(2);
-  var src = new TA([42, 43]);
+  var src = new TA(N([42, 43]));
 
   Object.defineProperty(TA.prototype, "length", desc);
   Object.defineProperty(sample, "length", desc);
diff --git a/test/built-ins/TypedArray/prototype/set/typedarray-arg-target-byteoffset-internal.js b/test/built-ins/TypedArray/prototype/set/typedarray-arg-target-byteoffset-internal.js
index 9e2802617a..29dd574df8 100644
--- a/test/built-ins/TypedArray/prototype/set/typedarray-arg-target-byteoffset-internal.js
+++ b/test/built-ins/TypedArray/prototype/set/typedarray-arg-target-byteoffset-internal.js
@@ -26,11 +26,14 @@ var desc = {
 
 Object.defineProperty(TypedArray.prototype, "byteOffset", desc);
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample = new TA(2);
-  var src = new TA([42, 43]);
+  var src = new TA(N([42, 43]));
   var differentTA = TA === Uint8Array ? Int8Array : Uint8Array;
-  var src2 = new differentTA([42, 43]);
+  if (typeof BigInt !== "undefined")
+    differentTA = TA === BigInt64Array ? BigUint64Array :
+                  TA === BigUint64Array ? BigInt64Array : differentTA;
+  var src2 = new differentTA(N([42, 43]));
   var src3 = new differentTA(sample.buffer, 0, 2);
 
   Object.defineProperty(TA.prototype, "byteOffset", desc);
diff --git a/test/built-ins/TypedArray/prototype/slice/arraylength-internal.js b/test/built-ins/TypedArray/prototype/slice/arraylength-internal.js
index 2c9e7cba30..8cf7055831 100644
--- a/test/built-ins/TypedArray/prototype/slice/arraylength-internal.js
+++ b/test/built-ins/TypedArray/prototype/slice/arraylength-internal.js
@@ -23,8 +23,8 @@ var desc = {
 
 Object.defineProperty(TypedArray.prototype, "length", desc);
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43]));
 
   Object.defineProperty(TA.prototype, "length", desc);
   Object.defineProperty(sample, "length", desc);
@@ -32,7 +32,7 @@ testWithTypedArrayConstructors(function(TA) {
   var result = sample.slice();
 
   assert.sameValue(getCalls, 0, "ignores length properties");
-  assert.sameValue(result[0], 42);
-  assert.sameValue(result[1], 43);
+  assert.sameValue(result[0], N(42));
+  assert.sameValue(result[1], N(43));
   assert.sameValue(result.hasOwnProperty(2), false);
 });
diff --git a/test/built-ins/TypedArray/prototype/slice/infinity.js b/test/built-ins/TypedArray/prototype/slice/infinity.js
index a93cd713a7..7fda1ec897 100644
--- a/test/built-ins/TypedArray/prototype/slice/infinity.js
+++ b/test/built-ins/TypedArray/prototype/slice/infinity.js
@@ -7,11 +7,11 @@ includes: [testTypedArray.js, compareArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([40, 41, 42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([40, 41, 42, 43]));
 
   assert(
-    compareArray(sample.slice(-Infinity), [40, 41, 42, 43]),
+    compareArray(sample.slice(-Infinity), N([40, 41, 42, 43])),
     "start == -Infinity"
   );
   assert(
@@ -23,7 +23,7 @@ testWithTypedArrayConstructors(function(TA) {
     "end == -Infinity"
   );
   assert(
-    compareArray(sample.slice(0, Infinity), [40, 41, 42, 43]),
+    compareArray(sample.slice(0, Infinity), N([40, 41, 42, 43])),
     "end == Infinity"
   );
 });
diff --git a/test/built-ins/TypedArray/prototype/slice/minus-zero.js b/test/built-ins/TypedArray/prototype/slice/minus-zero.js
index c597dadec9..b4c000bc0d 100644
--- a/test/built-ins/TypedArray/prototype/slice/minus-zero.js
+++ b/test/built-ins/TypedArray/prototype/slice/minus-zero.js
@@ -9,15 +9,15 @@ includes: [testTypedArray.js, compareArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([40, 41, 42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([40, 41, 42, 43]));
 
   assert(
-    compareArray(sample.slice(-0), [40, 41, 42, 43]),
+    compareArray(sample.slice(-0), N([40, 41, 42, 43])),
     "start == -0"
   );
   assert(
-    compareArray(sample.slice(-0, 4), [40, 41, 42, 43]),
+    compareArray(sample.slice(-0, 4), N([40, 41, 42, 43])),
     "start == -0, end == length"
   );
   assert(
diff --git a/test/built-ins/TypedArray/prototype/slice/result-does-not-copy-ordinary-properties.js b/test/built-ins/TypedArray/prototype/slice/result-does-not-copy-ordinary-properties.js
index 91df72a334..ca2b9d8e9a 100644
--- a/test/built-ins/TypedArray/prototype/slice/result-does-not-copy-ordinary-properties.js
+++ b/test/built-ins/TypedArray/prototype/slice/result-does-not-copy-ordinary-properties.js
@@ -9,8 +9,8 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([41, 42, 43, 44]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([41, 42, 43, 44]));
   sample.foo = 42;
 
   var result = sample.slice();
diff --git a/test/built-ins/TypedArray/prototype/slice/results-with-different-length.js b/test/built-ins/TypedArray/prototype/slice/results-with-different-length.js
index 34a4ad11b3..b6a62afb8f 100644
--- a/test/built-ins/TypedArray/prototype/slice/results-with-different-length.js
+++ b/test/built-ins/TypedArray/prototype/slice/results-with-different-length.js
@@ -7,47 +7,47 @@ includes: [testTypedArray.js, compareArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([40, 41, 42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([40, 41, 42, 43]));
 
   function testRes(result, expected, msg) {
     assert(compareArray(result, expected), msg + ", result: [" + result + "]");
   }
 
-  testRes(sample.slice(1), [41, 42, 43], "begin == 1");
-  testRes(sample.slice(2), [42, 43], "begin == 2");
-  testRes(sample.slice(3), [43], "begin == 3");
+  testRes(sample.slice(1), N([41, 42, 43]), "begin == 1");
+  testRes(sample.slice(2), N([42, 43]), "begin == 2");
+  testRes(sample.slice(3), N([43]), "begin == 3");
 
-  testRes(sample.slice(1, 4), [41, 42, 43], "begin == 1, end == length");
-  testRes(sample.slice(2, 4), [42, 43], "begin == 2, end == length");
-  testRes(sample.slice(3, 4), [43], "begin == 3, end == length");
+  testRes(sample.slice(1, 4), N([41, 42, 43]), "begin == 1, end == length");
+  testRes(sample.slice(2, 4), N([42, 43]), "begin == 2, end == length");
+  testRes(sample.slice(3, 4), N([43]), "begin == 3, end == length");
 
-  testRes(sample.slice(0, 1), [40], "begin == 0, end == 1");
-  testRes(sample.slice(0, 2), [40, 41], "begin == 0, end == 2");
-  testRes(sample.slice(0, 3), [40, 41, 42], "begin == 0, end == 3");
+  testRes(sample.slice(0, 1), N([40]), "begin == 0, end == 1");
+  testRes(sample.slice(0, 2), N([40, 41]), "begin == 0, end == 2");
+  testRes(sample.slice(0, 3), N([40, 41, 42]), "begin == 0, end == 3");
 
-  testRes(sample.slice(-1), [43], "begin == -1");
-  testRes(sample.slice(-2), [42, 43], "begin == -2");
-  testRes(sample.slice(-3), [41, 42, 43], "begin == -3");
+  testRes(sample.slice(-1), N([43]), "begin == -1");
+  testRes(sample.slice(-2), N([42, 43]), "begin == -2");
+  testRes(sample.slice(-3), N([41, 42, 43]), "begin == -3");
 
-  testRes(sample.slice(-1, 4), [43], "begin == -1, end == length");
-  testRes(sample.slice(-2, 4), [42, 43], "begin == -2, end == length");
-  testRes(sample.slice(-3, 4), [41, 42, 43], "begin == -3, end == length");
+  testRes(sample.slice(-1, 4), N([43]), "begin == -1, end == length");
+  testRes(sample.slice(-2, 4), N([42, 43]), "begin == -2, end == length");
+  testRes(sample.slice(-3, 4), N([41, 42, 43]), "begin == -3, end == length");
 
-  testRes(sample.slice(0, -1), [40, 41, 42], "begin == 0, end == -1");
-  testRes(sample.slice(0, -2), [40, 41], "begin == 0, end == -2");
-  testRes(sample.slice(0, -3), [40], "begin == 0, end == -3");
+  testRes(sample.slice(0, -1), N([40, 41, 42]), "begin == 0, end == -1");
+  testRes(sample.slice(0, -2), N([40, 41]), "begin == 0, end == -2");
+  testRes(sample.slice(0, -3), N([40]), "begin == 0, end == -3");
 
-  testRes(sample.slice(-0, -1), [40, 41, 42], "begin == -0, end == -1");
-  testRes(sample.slice(-0, -2), [40, 41], "begin == -0, end == -2");
-  testRes(sample.slice(-0, -3), [40], "begin == -0, end == -3");
+  testRes(sample.slice(-0, -1), N([40, 41, 42]), "begin == -0, end == -1");
+  testRes(sample.slice(-0, -2), N([40, 41]), "begin == -0, end == -2");
+  testRes(sample.slice(-0, -3), N([40]), "begin == -0, end == -3");
 
-  testRes(sample.slice(-2, -1), [42], "length == 4, begin == -2, end == -1");
-  testRes(sample.slice(1, -1), [41, 42], "length == 4, begin == 1, end == -1");
-  testRes(sample.slice(1, -2), [41], "length == 4, begin == 1, end == -2");
-  testRes(sample.slice(2, -1), [42], "length == 4, begin == 2, end == -1");
+  testRes(sample.slice(-2, -1), N([42]), "length == 4, begin == -2, end == -1");
+  testRes(sample.slice(1, -1), N([41, 42]), "length == 4, begin == 1, end == -1");
+  testRes(sample.slice(1, -2), N([41]), "length == 4, begin == 1, end == -2");
+  testRes(sample.slice(2, -1), N([42]), "length == 4, begin == 2, end == -1");
 
-  testRes(sample.slice(-1, 5), [43], "begin == -1, end > length");
-  testRes(sample.slice(-2, 4), [42, 43], "begin == -2, end > length");
-  testRes(sample.slice(-3, 4), [41, 42, 43], "begin == -3, end > length");
+  testRes(sample.slice(-1, 5), N([43]), "begin == -1, end > length");
+  testRes(sample.slice(-2, 4), N([42, 43]), "begin == -2, end > length");
+  testRes(sample.slice(-3, 4), N([41, 42, 43]), "begin == -3, end > length");
 });
diff --git a/test/built-ins/TypedArray/prototype/slice/results-with-empty-length.js b/test/built-ins/TypedArray/prototype/slice/results-with-empty-length.js
index 7cd44b9c60..a3c7490570 100644
--- a/test/built-ins/TypedArray/prototype/slice/results-with-empty-length.js
+++ b/test/built-ins/TypedArray/prototype/slice/results-with-empty-length.js
@@ -7,8 +7,8 @@ includes: [testTypedArray.js, compareArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([40, 41, 42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([40, 41, 42, 43]));
 
   function testRes(result, msg) {
     assert.sameValue(result.length, 0, msg);
diff --git a/test/built-ins/TypedArray/prototype/slice/results-with-same-length.js b/test/built-ins/TypedArray/prototype/slice/results-with-same-length.js
index d89cbbdf51..904efd50b4 100644
--- a/test/built-ins/TypedArray/prototype/slice/results-with-same-length.js
+++ b/test/built-ins/TypedArray/prototype/slice/results-with-same-length.js
@@ -7,15 +7,15 @@ includes: [testTypedArray.js, compareArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([40, 41, 42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([40, 41, 42, 43]));
 
   function testRes(result, msg) {
     assert.sameValue(result.length, 4, msg);
-    assert.sameValue(result[0], 40, msg + " & result[0] === 40");
-    assert.sameValue(result[1], 41, msg + " & result[1] === 41");
-    assert.sameValue(result[2], 42, msg + " & result[2] === 42");
-    assert.sameValue(result[3], 43, msg + " & result[3] === 43");
+    assert.sameValue(result[0], N(40), msg + " & result[0] === 40");
+    assert.sameValue(result[1], N(41), msg + " & result[1] === 41");
+    assert.sameValue(result[2], N(42), msg + " & result[2] === 42");
+    assert.sameValue(result[3], N(43), msg + " & result[3] === 43");
   }
 
   testRes(sample.slice(0), "begin == 0");
diff --git a/test/built-ins/TypedArray/prototype/slice/set-values-from-different-ctor-type.js b/test/built-ins/TypedArray/prototype/slice/set-values-from-different-ctor-type.js
index cb19d311d2..89f322ce07 100644
--- a/test/built-ins/TypedArray/prototype/slice/set-values-from-different-ctor-type.js
+++ b/test/built-ins/TypedArray/prototype/slice/set-values-from-different-ctor-type.js
@@ -32,16 +32,19 @@ features: [Symbol.species, TypedArray]
 
 var arr = [42, 43, 44];
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA(arr);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N(arr));
   var other = TA === Int8Array ? Uint8Array : Int8Array;
+  if (typeof BigInt !== "undefined") {
+    other = TA === BigInt64Array ? BigUint64Array :
+            TA === BigUint64Array ? BigInt64Array : other;
 
   sample.constructor = {};
   sample.constructor[Symbol.species] = other;
 
   var result = sample.slice();
 
-  assert(compareArray(result, arr), "values are set");
+  assert(compareArray(result, N(arr)), "values are set");
   assert.notSameValue(result.buffer, sample.buffer, "creates a new buffer");
   assert.sameValue(result.constructor, other, "used the custom ctor");
 });
diff --git a/test/built-ins/TypedArray/prototype/slice/speciesctor-get-ctor-abrupt.js b/test/built-ins/TypedArray/prototype/slice/speciesctor-get-ctor-abrupt.js
index d7baa426e3..d0f2d147b6 100644
--- a/test/built-ins/TypedArray/prototype/slice/speciesctor-get-ctor-abrupt.js
+++ b/test/built-ins/TypedArray/prototype/slice/speciesctor-get-ctor-abrupt.js
@@ -26,8 +26,8 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([40, 41, 42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([40, 41, 42, 43]));
 
   Object.defineProperty(sample, "constructor", {
     get: function() {
diff --git a/test/built-ins/TypedArray/prototype/slice/speciesctor-get-ctor-inherited.js b/test/built-ins/TypedArray/prototype/slice/speciesctor-get-ctor-inherited.js
index 79c9df2a77..d2d7667a97 100644
--- a/test/built-ins/TypedArray/prototype/slice/speciesctor-get-ctor-inherited.js
+++ b/test/built-ins/TypedArray/prototype/slice/speciesctor-get-ctor-inherited.js
@@ -26,8 +26,8 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([40, 41, 42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([40, 41, 42, 43]));
   var calls = 0;
   var result;
 
diff --git a/test/built-ins/TypedArray/prototype/slice/speciesctor-get-ctor-returns-throws.js b/test/built-ins/TypedArray/prototype/slice/speciesctor-get-ctor-returns-throws.js
index c048632f26..9910c9b4e4 100644
--- a/test/built-ins/TypedArray/prototype/slice/speciesctor-get-ctor-returns-throws.js
+++ b/test/built-ins/TypedArray/prototype/slice/speciesctor-get-ctor-returns-throws.js
@@ -28,8 +28,8 @@ includes: [testTypedArray.js]
 features: [Symbol, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([40, 41, 42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([40, 41, 42, 43]));
 
   sample.constructor = 42;
   assert.throws(TypeError, function() {
diff --git a/test/built-ins/TypedArray/prototype/slice/speciesctor-get-ctor.js b/test/built-ins/TypedArray/prototype/slice/speciesctor-get-ctor.js
index c09681ec05..ca237fb6d4 100644
--- a/test/built-ins/TypedArray/prototype/slice/speciesctor-get-ctor.js
+++ b/test/built-ins/TypedArray/prototype/slice/speciesctor-get-ctor.js
@@ -26,8 +26,8 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([40, 41, 42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([40, 41, 42, 43]));
   var calls = 0;
   var result;
 
diff --git a/test/built-ins/TypedArray/prototype/slice/speciesctor-get-species-custom-ctor-invocation.js b/test/built-ins/TypedArray/prototype/slice/speciesctor-get-species-custom-ctor-invocation.js
index d1642f1b77..15acea7c62 100644
--- a/test/built-ins/TypedArray/prototype/slice/speciesctor-get-species-custom-ctor-invocation.js
+++ b/test/built-ins/TypedArray/prototype/slice/speciesctor-get-species-custom-ctor-invocation.js
@@ -36,8 +36,8 @@ includes: [testTypedArray.js]
 features: [Symbol.species, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([40, 41, 42]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([40, 41, 42]));
   var result, ctorThis;
 
   sample.constructor = {};
diff --git a/test/built-ins/TypedArray/prototype/slice/speciesctor-get-species-custom-ctor-returns-another-instance.js b/test/built-ins/TypedArray/prototype/slice/speciesctor-get-species-custom-ctor-returns-another-instance.js
index 7bb19f5df4..6b95f571b2 100644
--- a/test/built-ins/TypedArray/prototype/slice/speciesctor-get-species-custom-ctor-returns-another-instance.js
+++ b/test/built-ins/TypedArray/prototype/slice/speciesctor-get-species-custom-ctor-returns-another-instance.js
@@ -36,8 +36,8 @@ includes: [testTypedArray.js, compareArray.js]
 features: [Symbol.species, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([40]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([40]));
   var other = new Int8Array([1, 0, 1]);
   var result;
 
diff --git a/test/built-ins/TypedArray/prototype/slice/speciesctor-get-species-custom-ctor.js b/test/built-ins/TypedArray/prototype/slice/speciesctor-get-species-custom-ctor.js
index 0477a0fd43..5a5151e720 100644
--- a/test/built-ins/TypedArray/prototype/slice/speciesctor-get-species-custom-ctor.js
+++ b/test/built-ins/TypedArray/prototype/slice/speciesctor-get-species-custom-ctor.js
@@ -36,8 +36,8 @@ includes: [testTypedArray.js, compareArray.js]
 features: [Symbol.species, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([40, 41, 42]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([40, 41, 42]));
   var calls = 0;
   var result;
 
@@ -50,5 +50,5 @@ testWithTypedArrayConstructors(function(TA) {
   result = sample.slice(1);
 
   assert.sameValue(calls, 1, "ctor called once");
-  assert(compareArray(result, [41, 42]), "expected object");
+  assert(compareArray(result, N([41, 42])), "expected object");
 });
diff --git a/test/built-ins/TypedArray/prototype/slice/tointeger-end.js b/test/built-ins/TypedArray/prototype/slice/tointeger-end.js
index 2a9be94068..df15d831c1 100644
--- a/test/built-ins/TypedArray/prototype/slice/tointeger-end.js
+++ b/test/built-ins/TypedArray/prototype/slice/tointeger-end.js
@@ -20,28 +20,28 @@ var obj = {
   }
 };
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([40, 41, 42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([40, 41, 42, 43]));
 
   assert(compareArray(sample.slice(0, false), []), "false");
-  assert(compareArray(sample.slice(0, true), [40]), "true");
+  assert(compareArray(sample.slice(0, true), N([40])), "true");
 
   assert(compareArray(sample.slice(0, NaN), []), "NaN");
   assert(compareArray(sample.slice(0, null), []), "null");
-  assert(compareArray(sample.slice(0, undefined), [40, 41, 42, 43]), "undefined");
+  assert(compareArray(sample.slice(0, undefined), N([40, 41, 42, 43])), "undefined");
 
   assert(compareArray(sample.slice(0, 0.6), []), "0.6");
-  assert(compareArray(sample.slice(0, 1.1), [40]), "1.1");
-  assert(compareArray(sample.slice(0, 1.5), [40]), "1.5");
+  assert(compareArray(sample.slice(0, 1.1), N([40])), "1.1");
+  assert(compareArray(sample.slice(0, 1.5), N([40])), "1.5");
   assert(compareArray(sample.slice(0, -0.6), []), "-0.6");
-  assert(compareArray(sample.slice(0, -1.1), [40, 41, 42]), "-1.1");
-  assert(compareArray(sample.slice(0, -1.5), [40, 41, 42]), "-1.5");
+  assert(compareArray(sample.slice(0, -1.1), N([40, 41, 42])), "-1.1");
+  assert(compareArray(sample.slice(0, -1.5), N([40, 41, 42])), "-1.5");
 
-  assert(compareArray(sample.slice(0, "3"), [40, 41, 42]), "string");
+  assert(compareArray(sample.slice(0, "3"), N([40, 41, 42])), "string");
   assert(
     compareArray(
       sample.slice(0, obj),
-      [40, 41]
+      N([40, 41])
     ),
     "object"
   );
diff --git a/test/built-ins/TypedArray/prototype/slice/tointeger-start.js b/test/built-ins/TypedArray/prototype/slice/tointeger-start.js
index f67ee090c0..353ac46e20 100644
--- a/test/built-ins/TypedArray/prototype/slice/tointeger-start.js
+++ b/test/built-ins/TypedArray/prototype/slice/tointeger-start.js
@@ -19,29 +19,29 @@ var obj = {
   }
 };
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([40, 41, 42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([40, 41, 42, 43]));
 
-  assert(compareArray(sample.slice(false), [40, 41, 42, 43]), "false");
-  assert(compareArray(sample.slice(true), [41, 42, 43]), "true");
+  assert(compareArray(sample.slice(false), N([40, 41, 42, 43])), "false");
+  assert(compareArray(sample.slice(true), N([41, 42, 43])), "true");
 
-  assert(compareArray(sample.slice(NaN), [40, 41, 42, 43]), "NaN");
-  assert(compareArray(sample.slice(null), [40, 41, 42, 43]), "null");
-  assert(compareArray(sample.slice(undefined), [40, 41, 42, 43]), "undefined");
+  assert(compareArray(sample.slice(NaN), N([40, 41, 42, 43])), "NaN");
+  assert(compareArray(sample.slice(null), N([40, 41, 42, 43])), "null");
+  assert(compareArray(sample.slice(undefined), N([40, 41, 42, 43])), "undefined");
 
-  assert(compareArray(sample.slice(1.1), [41, 42, 43]), "1.1");
-  assert(compareArray(sample.slice(1.5), [41, 42, 43]), "1.5");
-  assert(compareArray(sample.slice(0.6), [40, 41, 42, 43]), "0.6");
+  assert(compareArray(sample.slice(1.1), N([41, 42, 43])), "1.1");
+  assert(compareArray(sample.slice(1.5), N([41, 42, 43])), "1.5");
+  assert(compareArray(sample.slice(0.6), N([40, 41, 42, 43])), "0.6");
 
-  assert(compareArray(sample.slice(-1.5), [43]), "-1.5");
-  assert(compareArray(sample.slice(-1.1), [43]), "-1.1");
-  assert(compareArray(sample.slice(-0.6), [40, 41, 42, 43]), "-0.6");
+  assert(compareArray(sample.slice(-1.5), N([43])), "-1.5");
+  assert(compareArray(sample.slice(-1.1), N([43])), "-1.1");
+  assert(compareArray(sample.slice(-0.6), N([40, 41, 42, 43])), "-0.6");
 
-  assert(compareArray(sample.slice("3"), [43]), "string");
+  assert(compareArray(sample.slice("3"), N([43])), "string");
   assert(
     compareArray(
       sample.slice(obj),
-      [42, 43]
+      N([42, 43])
     ),
     "object"
   );
diff --git a/test/built-ins/TypedArray/prototype/some/callbackfn-arguments-with-thisarg.js b/test/built-ins/TypedArray/prototype/some/callbackfn-arguments-with-thisarg.js
index 57fbcf3f58..cb579688af 100644
--- a/test/built-ins/TypedArray/prototype/some/callbackfn-arguments-with-thisarg.js
+++ b/test/built-ins/TypedArray/prototype/some/callbackfn-arguments-with-thisarg.js
@@ -27,8 +27,8 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43, 44]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43, 44]));
 
   var results = [];
   var thisArg = ["test262", 0, "ecma262", 0];
@@ -41,17 +41,17 @@ testWithTypedArrayConstructors(function(TA) {
   assert.sameValue(thisArg.length, 4, "thisArg.length");
 
   assert.sameValue(results[0].length, 3, "results[0].length");
-  assert.sameValue(results[0][0], 42, "results[0][0] - kValue");
+  assert.sameValue(results[0][0], N(42), "results[0][0] - kValue");
   assert.sameValue(results[0][1], 0, "results[0][1] - k");
   assert.sameValue(results[0][2], sample, "results[0][2] - this");
 
   assert.sameValue(results[1].length, 3, "results[1].length");
-  assert.sameValue(results[1][0], 43, "results[1][0] - kValue");
+  assert.sameValue(results[1][0], N(43), "results[1][0] - kValue");
   assert.sameValue(results[1][1], 1, "results[1][1] - k");
   assert.sameValue(results[1][2], sample, "results[1][2] - this");
 
   assert.sameValue(results[2].length, 3, "results[2].length");
-  assert.sameValue(results[2][0], 44, "results[2][0] - kValue");
+  assert.sameValue(results[2][0], N(44), "results[2][0] - kValue");
   assert.sameValue(results[2][1], 2, "results[2][1] - k");
   assert.sameValue(results[2][2], sample, "results[2][2] - this");
 });
diff --git a/test/built-ins/TypedArray/prototype/some/callbackfn-arguments-without-thisarg.js b/test/built-ins/TypedArray/prototype/some/callbackfn-arguments-without-thisarg.js
index fff82e93b8..44d890c4d4 100644
--- a/test/built-ins/TypedArray/prototype/some/callbackfn-arguments-without-thisarg.js
+++ b/test/built-ins/TypedArray/prototype/some/callbackfn-arguments-without-thisarg.js
@@ -27,8 +27,8 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43, 44]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43, 44]));
 
   var results = [];
 
@@ -39,17 +39,17 @@ testWithTypedArrayConstructors(function(TA) {
   assert.sameValue(results.length, 3, "results.length");
 
   assert.sameValue(results[0].length, 3, "results[0].length");
-  assert.sameValue(results[0][0], 42, "results[0][0] - kValue");
+  assert.sameValue(results[0][0], N(42), "results[0][0] - kValue");
   assert.sameValue(results[0][1], 0, "results[0][1] - k");
   assert.sameValue(results[0][2], sample, "results[0][2] - this");
 
   assert.sameValue(results[1].length, 3, "results[1].length");
-  assert.sameValue(results[1][0], 43, "results[1][0] - kValue");
+  assert.sameValue(results[1][0], N(43), "results[1][0] - kValue");
   assert.sameValue(results[1][1], 1, "results[1][1] - k");
   assert.sameValue(results[1][2], sample, "results[1][2] - this");
 
   assert.sameValue(results[2].length, 3, "results[2].length");
-  assert.sameValue(results[2][0], 44, "results[2][0] - kValue");
+  assert.sameValue(results[2][0], N(44), "results[2][0] - kValue");
   assert.sameValue(results[2][1], 2, "results[2][1] - k");
   assert.sameValue(results[2][2], sample, "results[2][2] - this");
 });
diff --git a/test/built-ins/TypedArray/prototype/some/callbackfn-no-interaction-over-non-integer.js b/test/built-ins/TypedArray/prototype/some/callbackfn-no-interaction-over-non-integer.js
index d7a55a444b..f28e0d9078 100644
--- a/test/built-ins/TypedArray/prototype/some/callbackfn-no-interaction-over-non-integer.js
+++ b/test/built-ins/TypedArray/prototype/some/callbackfn-no-interaction-over-non-integer.js
@@ -18,8 +18,8 @@ includes: [testTypedArray.js]
 features: [Symbol, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([7, 8]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([7, 8]));
 
   var results = [];
 
@@ -35,6 +35,6 @@ testWithTypedArrayConstructors(function(TA) {
   assert.sameValue(results[0][1], 0, "results[0][1] - key");
   assert.sameValue(results[1][1], 1, "results[1][1] - key");
 
-  assert.sameValue(results[0][0], 7, "results[0][0] - value");
-  assert.sameValue(results[1][0], 8, "results[1][0] - value");
+  assert.sameValue(results[0][0], N(7), "results[0][0] - value");
+  assert.sameValue(results[1][0], N(8), "results[1][0] - value");
 });
diff --git a/test/built-ins/TypedArray/prototype/some/callbackfn-return-does-not-change-instance.js b/test/built-ins/TypedArray/prototype/some/callbackfn-return-does-not-change-instance.js
index ddfedf5af9..e7df5442d8 100644
--- a/test/built-ins/TypedArray/prototype/some/callbackfn-return-does-not-change-instance.js
+++ b/test/built-ins/TypedArray/prototype/some/callbackfn-return-does-not-change-instance.js
@@ -25,14 +25,14 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([40, 41, 42]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([40, 41, 42]));
 
   sample.some(function() {
     return 0;
   });
 
-  assert.sameValue(sample[0], 40, "[0] == 40");
-  assert.sameValue(sample[1], 41, "[1] == 41");
-  assert.sameValue(sample[2], 42, "[2] == 42");
+  assert.sameValue(sample[0], N(40), "[0] == 40");
+  assert.sameValue(sample[1], N(41), "[1] == 41");
+  assert.sameValue(sample[2], N(42), "[2] == 42");
 });
diff --git a/test/built-ins/TypedArray/prototype/some/callbackfn-set-value-during-interaction.js b/test/built-ins/TypedArray/prototype/some/callbackfn-set-value-during-interaction.js
index da68b8a16c..c779dbb049 100644
--- a/test/built-ins/TypedArray/prototype/some/callbackfn-set-value-during-interaction.js
+++ b/test/built-ins/TypedArray/prototype/some/callbackfn-set-value-during-interaction.js
@@ -25,24 +25,24 @@ includes: [testTypedArray.js]
 features: [Reflect.set, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43, 44]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43, 44]));
   var newVal = 0;
 
   sample.some(function(val, i) {
     if (i > 0) {
       assert.sameValue(
-        sample[i - 1], newVal - 1,
+        sample[i - 1], N(newVal - 1),
         "get the changed value during the loop"
       );
       assert.sameValue(
-        Reflect.set(sample, 0, 7),
+        Reflect.set(sample, 0, N(7)),
         true,
         "re-set a value for sample[0]"
       );
     }
     assert.sameValue(
-      Reflect.set(sample, i, newVal),
+      Reflect.set(sample, i, N(newVal)),
       true,
       "set value during iteration"
     );
@@ -50,7 +50,7 @@ testWithTypedArrayConstructors(function(TA) {
     newVal++;
   });
 
-  assert.sameValue(sample[0], 7, "changed values after iteration [0] == 7");
-  assert.sameValue(sample[1], 1, "changed values after iteration [1] == 1");
-  assert.sameValue(sample[2], 2, "changed values after iteration [2] == 2");
+  assert.sameValue(sample[0], N(7), "changed values after iteration [0] == 7");
+  assert.sameValue(sample[1], N(1), "changed values after iteration [1] == 1");
+  assert.sameValue(sample[2], N(2), "changed values after iteration [2] == 2");
 });
diff --git a/test/built-ins/TypedArray/prototype/some/get-length-uses-internal-arraylength.js b/test/built-ins/TypedArray/prototype/some/get-length-uses-internal-arraylength.js
index 3fd958a92c..14c21cab27 100644
--- a/test/built-ins/TypedArray/prototype/some/get-length-uses-internal-arraylength.js
+++ b/test/built-ins/TypedArray/prototype/some/get-length-uses-internal-arraylength.js
@@ -30,8 +30,8 @@ var desc = {
 
 Object.defineProperty(TypedArray.prototype, "length", desc);
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43]));
   var calls = 0;
 
   Object.defineProperty(TA.prototype, "length", desc);
diff --git a/test/built-ins/TypedArray/prototype/some/values-are-not-cached.js b/test/built-ins/TypedArray/prototype/some/values-are-not-cached.js
index c8a3c2cdea..12fc43d9c9 100644
--- a/test/built-ins/TypedArray/prototype/some/values-are-not-cached.js
+++ b/test/built-ins/TypedArray/prototype/some/values-are-not-cached.js
@@ -25,16 +25,16 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43, 44]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43, 44]));
 
   sample.some(function(v, i) {
     if (i < sample.length - 1) {
-      sample[i+1] = 42;
+      sample[i+1] = N(42);
     }
 
     assert.sameValue(
-      v, 42, "method does not cache values before callbackfn calls"
+      v, N(42), "method does not cache values before callbackfn calls"
     );
   });
 });
diff --git a/test/built-ins/TypedArray/prototype/sort/arraylength-internal.js b/test/built-ins/TypedArray/prototype/sort/arraylength-internal.js
index 543c4eaa6f..833ed4cd17 100644
--- a/test/built-ins/TypedArray/prototype/sort/arraylength-internal.js
+++ b/test/built-ins/TypedArray/prototype/sort/arraylength-internal.js
@@ -22,8 +22,8 @@ var desc = {
 
 Object.defineProperty(TypedArray.prototype, "length", desc);
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 42, 42]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 42, 42]));
   getCalls = 0;
 
   Object.defineProperty(TA.prototype, "length", desc);
diff --git a/test/built-ins/TypedArray/prototype/sort/comparefn-call-throws.js b/test/built-ins/TypedArray/prototype/sort/comparefn-call-throws.js
index 3370975d0e..6754d85232 100644
--- a/test/built-ins/TypedArray/prototype/sort/comparefn-call-throws.js
+++ b/test/built-ins/TypedArray/prototype/sort/comparefn-call-throws.js
@@ -25,8 +25,8 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43, 44, 45, 46]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43, 44, 45, 46]));
   var calls = 0;
 
   var comparefn = function() {
diff --git a/test/built-ins/TypedArray/prototype/sort/comparefn-calls.js b/test/built-ins/TypedArray/prototype/sort/comparefn-calls.js
index 6c06021829..52ba9cce2a 100644
--- a/test/built-ins/TypedArray/prototype/sort/comparefn-calls.js
+++ b/test/built-ins/TypedArray/prototype/sort/comparefn-calls.js
@@ -22,8 +22,8 @@ var expectedThis = (function() {
   return this;
 })();
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 42, 42, 42, 42]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 42, 42, 42, 42]));
   var calls = [];
 
   var comparefn = function() {
@@ -36,7 +36,7 @@ testWithTypedArrayConstructors(function(TA) {
   calls.forEach(function(args) {
     assert.sameValue(args[0], expectedThis, "comparefn is called no specific this");
     assert.sameValue(args[1].length, 2, "comparefn is always called with 2 args");
-    assert.sameValue(args[1][0], 42, "x is a listed value");
-    assert.sameValue(args[1][0], 42, "y is a listed value");
+    assert.sameValue(args[1][0], N(42), "x is a listed value");
+    assert.sameValue(args[1][0], N(42), "y is a listed value");
   });
 });
diff --git a/test/built-ins/TypedArray/prototype/sort/comparefn-nonfunction-call-throws.js b/test/built-ins/TypedArray/prototype/sort/comparefn-nonfunction-call-throws.js
index dceb36d66b..a2e5cf0ef4 100644
--- a/test/built-ins/TypedArray/prototype/sort/comparefn-nonfunction-call-throws.js
+++ b/test/built-ins/TypedArray/prototype/sort/comparefn-nonfunction-call-throws.js
@@ -18,8 +18,8 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43, 44, 45, 46]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43, 44, 45, 46]));
 
   assert.throws(TypeError, function() {
     sample.sort(null);
diff --git a/test/built-ins/TypedArray/prototype/sort/return-same-instance.js b/test/built-ins/TypedArray/prototype/sort/return-same-instance.js
index f958850802..e45ad5eafd 100644
--- a/test/built-ins/TypedArray/prototype/sort/return-same-instance.js
+++ b/test/built-ins/TypedArray/prototype/sort/return-same-instance.js
@@ -14,8 +14,8 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([2, 1]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([2, 1]));
   var result = sample.sort();
 
   assert.sameValue(sample, result, "without comparefn");
diff --git a/test/built-ins/TypedArray/prototype/sort/sortcompare-with-no-tostring.js b/test/built-ins/TypedArray/prototype/sort/sortcompare-with-no-tostring.js
index f3bb0cac03..ec42fb0691 100644
--- a/test/built-ins/TypedArray/prototype/sort/sortcompare-with-no-tostring.js
+++ b/test/built-ins/TypedArray/prototype/sort/sortcompare-with-no-tostring.js
@@ -20,8 +20,8 @@ features: [TypedArray]
 
 var origToString = Number.prototype.toString;
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([20, 100, 3]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([20, 100, 3]));
   var result = sample.sort();
-  assert(compareArray(result, [3, 20, 100]));
+  assert(compareArray(result, N([3, 20, 100])));
 });
diff --git a/test/built-ins/TypedArray/prototype/sort/sorted-values.js b/test/built-ins/TypedArray/prototype/sort/sorted-values.js
index 83d870e9ee..ad35153506 100644
--- a/test/built-ins/TypedArray/prototype/sort/sorted-values.js
+++ b/test/built-ins/TypedArray/prototype/sort/sorted-values.js
@@ -14,20 +14,20 @@ includes: [testTypedArray.js, compareArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample;
 
-  sample = new TA([4, 3, 2, 1]).sort();
-  assert(compareArray(sample, [1, 2, 3, 4]), "descending values");
+  sample = new TA(N([4, 3, 2, 1])).sort();
+  assert(compareArray(sample, N([1, 2, 3, 4])), "descending values");
 
-  sample = new TA([3, 4, 1, 2]).sort();
-  assert(compareArray(sample, [1, 2, 3, 4]), "mixed numbers");
+  sample = new TA(N([3, 4, 1, 2])).sort();
+  assert(compareArray(sample, N([1, 2, 3, 4])), "mixed numbers");
 
-  sample = new TA([3, 4, 3, 1, 0, 1, 2]).sort();
-  assert(compareArray(sample, [0, 1, 1, 2, 3, 3, 4]), "repeating numbers");
+  sample = new TA(N([3, 4, 3, 1, 0, 1, 2])).sort();
+  assert(compareArray(sample, N([0, 1, 1, 2, 3, 3, 4])), "repeating numbers");
 
-  sample = new TA([1, 0, -0, 2]).sort();
-  assert(compareArray(sample, [0, 0, 1, 2]), "0s");
+  sample = new TA(N([1, 0, -0, 2])).sort();
+  assert(compareArray(sample, N([0, 0, 1, 2])), "0s");
 });
 
 testWithTypedArrayConstructors(function(TA) {
diff --git a/test/built-ins/TypedArray/prototype/subarray/infinity.js b/test/built-ins/TypedArray/prototype/subarray/infinity.js
index 8a27464925..df67a42c17 100644
--- a/test/built-ins/TypedArray/prototype/subarray/infinity.js
+++ b/test/built-ins/TypedArray/prototype/subarray/infinity.js
@@ -9,11 +9,11 @@ includes: [testTypedArray.js, compareArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([40, 41, 42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([40, 41, 42, 43]));
 
   assert(
-    compareArray(sample.subarray(-Infinity), [40, 41, 42, 43]),
+    compareArray(sample.subarray(-Infinity), N([40, 41, 42, 43])),
     "begin == -Infinity"
   );
   assert(
@@ -25,7 +25,7 @@ testWithTypedArrayConstructors(function(TA) {
     "end == -Infinity"
   );
   assert(
-    compareArray(sample.subarray(0, Infinity), [40, 41, 42, 43]),
+    compareArray(sample.subarray(0, Infinity), N([40, 41, 42, 43])),
     "end == Infinity"
   );
 });
diff --git a/test/built-ins/TypedArray/prototype/subarray/minus-zero.js b/test/built-ins/TypedArray/prototype/subarray/minus-zero.js
index de714ad469..def5ab0359 100644
--- a/test/built-ins/TypedArray/prototype/subarray/minus-zero.js
+++ b/test/built-ins/TypedArray/prototype/subarray/minus-zero.js
@@ -9,15 +9,15 @@ includes: [testTypedArray.js, compareArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([40, 41, 42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([40, 41, 42, 43]));
 
   assert(
-    compareArray(sample.subarray(-0), [40, 41, 42, 43]),
+    compareArray(sample.subarray(-0), N([40, 41, 42, 43])),
     "begin == -0"
   );
   assert(
-    compareArray(sample.subarray(-0, 4), [40, 41, 42, 43]),
+    compareArray(sample.subarray(-0, 4), N([40, 41, 42, 43])),
     "being == -0, end == length"
   );
   assert(
diff --git a/test/built-ins/TypedArray/prototype/subarray/result-does-not-copy-ordinary-properties.js b/test/built-ins/TypedArray/prototype/subarray/result-does-not-copy-ordinary-properties.js
index c8e9e0d6ce..f08f99d505 100644
--- a/test/built-ins/TypedArray/prototype/subarray/result-does-not-copy-ordinary-properties.js
+++ b/test/built-ins/TypedArray/prototype/subarray/result-does-not-copy-ordinary-properties.js
@@ -12,8 +12,8 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([41, 42, 43, 44]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([41, 42, 43, 44]));
   var result;
 
   sample.foo = 42;
diff --git a/test/built-ins/TypedArray/prototype/subarray/result-is-new-instance-from-same-ctor.js b/test/built-ins/TypedArray/prototype/subarray/result-is-new-instance-from-same-ctor.js
index a507518bb7..f995d6a5f2 100644
--- a/test/built-ins/TypedArray/prototype/subarray/result-is-new-instance-from-same-ctor.js
+++ b/test/built-ins/TypedArray/prototype/subarray/result-is-new-instance-from-same-ctor.js
@@ -12,8 +12,8 @@ includes: [testTypedArray.js, compareArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([40, 41, 42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([40, 41, 42, 43]));
   var result = sample.subarray(1);
 
   assert.sameValue(
@@ -25,7 +25,7 @@ testWithTypedArrayConstructors(function(TA) {
   assert(result instanceof TA, "instanceof");
 
   assert(
-    compareArray(sample, [40, 41, 42, 43]),
+    compareArray(sample, N([40, 41, 42, 43])),
     "original sample remains the same"
   );
 });
diff --git a/test/built-ins/TypedArray/prototype/subarray/result-is-new-instance-with-shared-buffer.js b/test/built-ins/TypedArray/prototype/subarray/result-is-new-instance-with-shared-buffer.js
index ff3925eb63..704a2feb3c 100644
--- a/test/built-ins/TypedArray/prototype/subarray/result-is-new-instance-with-shared-buffer.js
+++ b/test/built-ins/TypedArray/prototype/subarray/result-is-new-instance-with-shared-buffer.js
@@ -12,8 +12,8 @@ includes: [testTypedArray.js, compareArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([40, 41, 42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([40, 41, 42, 43]));
   var buffer = sample.buffer;
   var result = sample.subarray(1);
 
@@ -21,15 +21,15 @@ testWithTypedArrayConstructors(function(TA) {
   assert.sameValue(result.buffer, sample.buffer, "shared buffer");
   assert.sameValue(sample.buffer, buffer, "original buffer is preserved");
 
-  sample[1] = 100;
+  sample[1] = N(100);
   assert(
-    compareArray(result, [100, 42, 43]),
+    compareArray(result, N([100, 42, 43])),
     "changes on the original sample values affect the new instance"
   );
 
-  result[1] = 111;
+  result[1] = N(111);
   assert(
-    compareArray(sample, [40, 100, 111, 43]),
+    compareArray(sample, N([40, 100, 111, 43])),
     "changes on the new instance values affect the original sample"
   );
 });
diff --git a/test/built-ins/TypedArray/prototype/subarray/results-with-different-length.js b/test/built-ins/TypedArray/prototype/subarray/results-with-different-length.js
index c206e2462b..89c9846eaf 100644
--- a/test/built-ins/TypedArray/prototype/subarray/results-with-different-length.js
+++ b/test/built-ins/TypedArray/prototype/subarray/results-with-different-length.js
@@ -12,47 +12,47 @@ includes: [testTypedArray.js, compareArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([40, 41, 42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([40, 41, 42, 43]));
 
   function testRes(result, expected, msg) {
     assert(compareArray(result, expected), msg + ", result: [" + result + "]");
   }
 
-  testRes(sample.subarray(1), [41, 42, 43], "begin == 1");
-  testRes(sample.subarray(2), [42, 43], "begin == 2");
-  testRes(sample.subarray(3), [43], "begin == 3");
+  testRes(sample.subarray(1), N([41, 42, 43]), "begin == 1");
+  testRes(sample.subarray(2), N([42, 43]), "begin == 2");
+  testRes(sample.subarray(3), N([43]), "begin == 3");
 
-  testRes(sample.subarray(1, 4), [41, 42, 43], "begin == 1, end == length");
-  testRes(sample.subarray(2, 4), [42, 43], "begin == 2, end == length");
-  testRes(sample.subarray(3, 4), [43], "begin == 3, end == length");
+  testRes(sample.subarray(1, 4), N([41, 42, 43]), "begin == 1, end == length");
+  testRes(sample.subarray(2, 4), N([42, 43]), "begin == 2, end == length");
+  testRes(sample.subarray(3, 4), N([43]), "begin == 3, end == length");
 
-  testRes(sample.subarray(0, 1), [40], "begin == 0, end == 1");
-  testRes(sample.subarray(0, 2), [40, 41], "begin == 0, end == 2");
-  testRes(sample.subarray(0, 3), [40, 41, 42], "begin == 0, end == 3");
+  testRes(sample.subarray(0, 1), N([40]), "begin == 0, end == 1");
+  testRes(sample.subarray(0, 2), N([40, 41]), "begin == 0, end == 2");
+  testRes(sample.subarray(0, 3), N([40, 41, 42]), "begin == 0, end == 3");
 
-  testRes(sample.subarray(-1), [43], "begin == -1");
-  testRes(sample.subarray(-2), [42, 43], "begin == -2");
-  testRes(sample.subarray(-3), [41, 42, 43], "begin == -3");
+  testRes(sample.subarray(-1), N([43]), "begin == -1");
+  testRes(sample.subarray(-2), N([42, 43]), "begin == -2");
+  testRes(sample.subarray(-3), N([41, 42, 43]), "begin == -3");
 
-  testRes(sample.subarray(-1, 4), [43], "begin == -1, end == length");
-  testRes(sample.subarray(-2, 4), [42, 43], "begin == -2, end == length");
-  testRes(sample.subarray(-3, 4), [41, 42, 43], "begin == -3, end == length");
+  testRes(sample.subarray(-1, 4), N([43]), "begin == -1, end == length");
+  testRes(sample.subarray(-2, 4), N([42, 43]), "begin == -2, end == length");
+  testRes(sample.subarray(-3, 4), N([41, 42, 43]), "begin == -3, end == length");
 
-  testRes(sample.subarray(0, -1), [40, 41, 42], "begin == 0, end == -1");
-  testRes(sample.subarray(0, -2), [40, 41], "begin == 0, end == -2");
-  testRes(sample.subarray(0, -3), [40], "begin == 0, end == -3");
+  testRes(sample.subarray(0, -1), N([40, 41, 42]), "begin == 0, end == -1");
+  testRes(sample.subarray(0, -2), N([40, 41]), "begin == 0, end == -2");
+  testRes(sample.subarray(0, -3), N([40]), "begin == 0, end == -3");
 
-  testRes(sample.subarray(-0, -1), [40, 41, 42], "begin == -0, end == -1");
-  testRes(sample.subarray(-0, -2), [40, 41], "begin == -0, end == -2");
-  testRes(sample.subarray(-0, -3), [40], "begin == -0, end == -3");
+  testRes(sample.subarray(-0, -1), N([40, 41, 42]), "begin == -0, end == -1");
+  testRes(sample.subarray(-0, -2), N([40, 41]), "begin == -0, end == -2");
+  testRes(sample.subarray(-0, -3), N([40]), "begin == -0, end == -3");
 
-  testRes(sample.subarray(-2, -1), [42], "length == 4, begin == -2, end == -1");
-  testRes(sample.subarray(1, -1), [41, 42], "length == 4, begin == 1, end == -1");
-  testRes(sample.subarray(1, -2), [41], "length == 4, begin == 1, end == -2");
-  testRes(sample.subarray(2, -1), [42], "length == 4, begin == 2, end == -1");
+  testRes(sample.subarray(-2, -1), N([42]), "length == 4, begin == -2, end == -1");
+  testRes(sample.subarray(1, -1), N([41, 42]), "length == 4, begin == 1, end == -1");
+  testRes(sample.subarray(1, -2), N([41]), "length == 4, begin == 1, end == -2");
+  testRes(sample.subarray(2, -1), N([42]), "length == 4, begin == 2, end == -1");
 
-  testRes(sample.subarray(-1, 5), [43], "begin == -1, end > length");
-  testRes(sample.subarray(-2, 4), [42, 43], "begin == -2, end > length");
-  testRes(sample.subarray(-3, 4), [41, 42, 43], "begin == -3, end > length");
+  testRes(sample.subarray(-1, 5), N([43]), "begin == -1, end > length");
+  testRes(sample.subarray(-2, 4), N([42, 43]), "begin == -2, end > length");
+  testRes(sample.subarray(-3, 4), N([41, 42, 43]), "begin == -3, end > length");
 });
diff --git a/test/built-ins/TypedArray/prototype/subarray/results-with-empty-length.js b/test/built-ins/TypedArray/prototype/subarray/results-with-empty-length.js
index 0660a11125..23a4258367 100644
--- a/test/built-ins/TypedArray/prototype/subarray/results-with-empty-length.js
+++ b/test/built-ins/TypedArray/prototype/subarray/results-with-empty-length.js
@@ -12,8 +12,8 @@ includes: [testTypedArray.js, compareArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([40, 41, 42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([40, 41, 42, 43]));
 
   function testRes(result, msg) {
     assert.sameValue(result.length, 0, msg);
diff --git a/test/built-ins/TypedArray/prototype/subarray/results-with-same-length.js b/test/built-ins/TypedArray/prototype/subarray/results-with-same-length.js
index 947e957223..a78adfee1f 100644
--- a/test/built-ins/TypedArray/prototype/subarray/results-with-same-length.js
+++ b/test/built-ins/TypedArray/prototype/subarray/results-with-same-length.js
@@ -12,15 +12,15 @@ includes: [testTypedArray.js, compareArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([40, 41, 42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([40, 41, 42, 43]));
 
   function testRes(result, msg) {
     assert.sameValue(result.length, 4, msg);
-    assert.sameValue(result[0], 40, msg + " & result[0] === 40");
-    assert.sameValue(result[1], 41, msg + " & result[1] === 41");
-    assert.sameValue(result[2], 42, msg + " & result[2] === 42");
-    assert.sameValue(result[3], 43, msg + " & result[3] === 43");
+    assert.sameValue(result[0], N(40), msg + " & result[0] === 40");
+    assert.sameValue(result[1], N(41), msg + " & result[1] === 41");
+    assert.sameValue(result[2], N(42), msg + " & result[2] === 42");
+    assert.sameValue(result[3], N(43), msg + " & result[3] === 43");
   }
 
   testRes(sample.subarray(0), "begin == 0");
diff --git a/test/built-ins/TypedArray/prototype/subarray/speciesctor-get-ctor-abrupt.js b/test/built-ins/TypedArray/prototype/subarray/speciesctor-get-ctor-abrupt.js
index a7d2bc800e..ca5a484fa6 100644
--- a/test/built-ins/TypedArray/prototype/subarray/speciesctor-get-ctor-abrupt.js
+++ b/test/built-ins/TypedArray/prototype/subarray/speciesctor-get-ctor-abrupt.js
@@ -25,8 +25,8 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([40, 41, 42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([40, 41, 42, 43]));
 
   Object.defineProperty(sample, "constructor", {
     get: function() {
diff --git a/test/built-ins/TypedArray/prototype/subarray/speciesctor-get-ctor-inherited.js b/test/built-ins/TypedArray/prototype/subarray/speciesctor-get-ctor-inherited.js
index 3fa39b4314..65771d46dc 100644
--- a/test/built-ins/TypedArray/prototype/subarray/speciesctor-get-ctor-inherited.js
+++ b/test/built-ins/TypedArray/prototype/subarray/speciesctor-get-ctor-inherited.js
@@ -25,8 +25,8 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([40, 41, 42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([40, 41, 42, 43]));
   var calls = 0;
   var result;
 
diff --git a/test/built-ins/TypedArray/prototype/subarray/speciesctor-get-ctor-returns-throws.js b/test/built-ins/TypedArray/prototype/subarray/speciesctor-get-ctor-returns-throws.js
index 70714191e7..1a8b1a4724 100644
--- a/test/built-ins/TypedArray/prototype/subarray/speciesctor-get-ctor-returns-throws.js
+++ b/test/built-ins/TypedArray/prototype/subarray/speciesctor-get-ctor-returns-throws.js
@@ -27,8 +27,8 @@ includes: [testTypedArray.js]
 features: [Symbol, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([40, 41, 42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([40, 41, 42, 43]));
 
   sample.constructor = 42;
   assert.throws(TypeError, function() {
diff --git a/test/built-ins/TypedArray/prototype/subarray/speciesctor-get-ctor.js b/test/built-ins/TypedArray/prototype/subarray/speciesctor-get-ctor.js
index 6e6a65e3b9..9622a8477e 100644
--- a/test/built-ins/TypedArray/prototype/subarray/speciesctor-get-ctor.js
+++ b/test/built-ins/TypedArray/prototype/subarray/speciesctor-get-ctor.js
@@ -25,8 +25,8 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([40, 41, 42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([40, 41, 42, 43]));
   var calls = 0;
   var result;
 
diff --git a/test/built-ins/TypedArray/prototype/subarray/speciesctor-get-species-custom-ctor-invocation.js b/test/built-ins/TypedArray/prototype/subarray/speciesctor-get-species-custom-ctor-invocation.js
index 0b62ffdcb1..d8931af989 100644
--- a/test/built-ins/TypedArray/prototype/subarray/speciesctor-get-species-custom-ctor-invocation.js
+++ b/test/built-ins/TypedArray/prototype/subarray/speciesctor-get-species-custom-ctor-invocation.js
@@ -35,8 +35,8 @@ includes: [testTypedArray.js]
 features: [Symbol.species, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([40, 41, 42]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([40, 41, 42]));
   var expectedOffset = TA.BYTES_PER_ELEMENT;
   var result, ctorThis;
 
diff --git a/test/built-ins/TypedArray/prototype/subarray/speciesctor-get-species-custom-ctor-returns-another-instance.js b/test/built-ins/TypedArray/prototype/subarray/speciesctor-get-species-custom-ctor-returns-another-instance.js
index 3ed6ba00a8..77e3c2c5bf 100644
--- a/test/built-ins/TypedArray/prototype/subarray/speciesctor-get-species-custom-ctor-returns-another-instance.js
+++ b/test/built-ins/TypedArray/prototype/subarray/speciesctor-get-species-custom-ctor-returns-another-instance.js
@@ -35,8 +35,8 @@ includes: [testTypedArray.js, compareArray.js]
 features: [Symbol.species, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([40]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([40]));
   var other = new Int8Array([1, 0, 1]);
   var result;
 
diff --git a/test/built-ins/TypedArray/prototype/subarray/speciesctor-get-species-custom-ctor.js b/test/built-ins/TypedArray/prototype/subarray/speciesctor-get-species-custom-ctor.js
index 5dbc2cc361..963db60dcb 100644
--- a/test/built-ins/TypedArray/prototype/subarray/speciesctor-get-species-custom-ctor.js
+++ b/test/built-ins/TypedArray/prototype/subarray/speciesctor-get-species-custom-ctor.js
@@ -35,8 +35,8 @@ includes: [testTypedArray.js, compareArray.js]
 features: [Symbol.species, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([40, 41, 42]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([40, 41, 42]));
   var calls = 0;
   var result;
 
@@ -49,5 +49,5 @@ testWithTypedArrayConstructors(function(TA) {
   result = sample.subarray(1);
 
   assert.sameValue(calls, 1, "ctor called once");
-  assert(compareArray(result, [41, 42]), "expected subarray");
+  assert(compareArray(result, N([41, 42])), "expected subarray");
 });
diff --git a/test/built-ins/TypedArray/prototype/subarray/tointeger-begin.js b/test/built-ins/TypedArray/prototype/subarray/tointeger-begin.js
index abf503cb8f..d135984a3e 100644
--- a/test/built-ins/TypedArray/prototype/subarray/tointeger-begin.js
+++ b/test/built-ins/TypedArray/prototype/subarray/tointeger-begin.js
@@ -19,29 +19,29 @@ var obj = {
   }
 };
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([40, 41, 42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([40, 41, 42, 43]));
 
-  assert(compareArray(sample.subarray(false), [40, 41, 42, 43]), "false");
-  assert(compareArray(sample.subarray(true), [41, 42, 43]), "true");
+  assert(compareArray(sample.subarray(false), N([40, 41, 42, 43])), "false");
+  assert(compareArray(sample.subarray(true), N([41, 42, 43])), "true");
 
-  assert(compareArray(sample.subarray(NaN), [40, 41, 42, 43]), "NaN");
-  assert(compareArray(sample.subarray(null), [40, 41, 42, 43]), "null");
-  assert(compareArray(sample.subarray(undefined), [40, 41, 42, 43]), "undefined");
+  assert(compareArray(sample.subarray(NaN), N([40, 41, 42, 43])), "NaN");
+  assert(compareArray(sample.subarray(null), N([40, 41, 42, 43])), "null");
+  assert(compareArray(sample.subarray(undefined), N([40, 41, 42, 43])), "undefined");
 
-  assert(compareArray(sample.subarray(1.1), [41, 42, 43]), "1.1");
-  assert(compareArray(sample.subarray(1.5), [41, 42, 43]), "1.5");
-  assert(compareArray(sample.subarray(0.6), [40, 41, 42, 43]), "0.6");
+  assert(compareArray(sample.subarray(1.1), N([41, 42, 43])), "1.1");
+  assert(compareArray(sample.subarray(1.5), N([41, 42, 43])), "1.5");
+  assert(compareArray(sample.subarray(0.6), N([40, 41, 42, 43])), "0.6");
 
-  assert(compareArray(sample.subarray(-1.5), [43]), "-1.5");
-  assert(compareArray(sample.subarray(-1.1), [43]), "-1.1");
-  assert(compareArray(sample.subarray(-0.6), [40, 41, 42, 43]), "-0.6");
+  assert(compareArray(sample.subarray(-1.5), N([43])), "-1.5");
+  assert(compareArray(sample.subarray(-1.1), N([43])), "-1.1");
+  assert(compareArray(sample.subarray(-0.6), N([40, 41, 42, 43])), "-0.6");
 
-  assert(compareArray(sample.subarray("3"), [43]), "string");
+  assert(compareArray(sample.subarray("3"), N([43])), "string");
   assert(
     compareArray(
       sample.subarray(obj),
-      [42, 43]
+      N([42, 43])
     ),
     "object"
   );
diff --git a/test/built-ins/TypedArray/prototype/subarray/tointeger-end.js b/test/built-ins/TypedArray/prototype/subarray/tointeger-end.js
index 4797bf5b22..ad58835fb9 100644
--- a/test/built-ins/TypedArray/prototype/subarray/tointeger-end.js
+++ b/test/built-ins/TypedArray/prototype/subarray/tointeger-end.js
@@ -20,28 +20,28 @@ var obj = {
   }
 };
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([40, 41, 42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([40, 41, 42, 43]));
 
   assert(compareArray(sample.subarray(0, false), []), "false");
-  assert(compareArray(sample.subarray(0, true), [40]), "true");
+  assert(compareArray(sample.subarray(0, true), N([40])), "true");
 
   assert(compareArray(sample.subarray(0, NaN), []), "NaN");
   assert(compareArray(sample.subarray(0, null), []), "null");
-  assert(compareArray(sample.subarray(0, undefined), [40, 41, 42, 43]), "undefined");
+  assert(compareArray(sample.subarray(0, undefined), N([40, 41, 42, 43])), "undefined");
 
   assert(compareArray(sample.subarray(0, 0.6), []), "0.6");
-  assert(compareArray(sample.subarray(0, 1.1), [40]), "1.1");
-  assert(compareArray(sample.subarray(0, 1.5), [40]), "1.5");
+  assert(compareArray(sample.subarray(0, 1.1), N([40])), "1.1");
+  assert(compareArray(sample.subarray(0, 1.5), N([40])), "1.5");
   assert(compareArray(sample.subarray(0, -0.6), []), "-0.6");
-  assert(compareArray(sample.subarray(0, -1.1), [40, 41, 42]), "-1.1");
-  assert(compareArray(sample.subarray(0, -1.5), [40, 41, 42]), "-1.5");
+  assert(compareArray(sample.subarray(0, -1.1), N([40, 41, 42])), "-1.1");
+  assert(compareArray(sample.subarray(0, -1.5), N([40, 41, 42])), "-1.5");
 
-  assert(compareArray(sample.subarray(0, "3"), [40, 41, 42]), "string");
+  assert(compareArray(sample.subarray(0, "3"), N([40, 41, 42])), "string");
   assert(
     compareArray(
       sample.subarray(0, obj),
-      [40, 41]
+      N([40, 41])
     ),
     "object"
   );
diff --git a/test/built-ins/TypedArray/prototype/toLocaleString/calls-tolocalestring-from-each-value.js b/test/built-ins/TypedArray/prototype/toLocaleString/calls-tolocalestring-from-each-value.js
index 980670c721..5c4ea06ef7 100644
--- a/test/built-ins/TypedArray/prototype/toLocaleString/calls-tolocalestring-from-each-value.js
+++ b/test/built-ins/TypedArray/prototype/toLocaleString/calls-tolocalestring-from-each-value.js
@@ -39,15 +39,19 @@ Number.prototype.toLocaleString = function() {
   return "hacks" + calls.length;
 };
 
+if (typeof BigInt !== "undefined") {
+  BigInt.prototype.toLocaleString = Number.prototype.toLocaleString;
+}
+
 var arr = [42, 0];
 var expected = ["hacks1", "hacks2"].join(separator);
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA(arr);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N(arr));
   calls = [];
   assert.sameValue(sample.toLocaleString(), expected, "returns expected value");
   assert(
-    compareArray(new TA(calls), sample),
+    compareArray(new TA(N(calls)), sample),
     "toLocaleString called for each item"
   );
 });
diff --git a/test/built-ins/TypedArray/prototype/toLocaleString/calls-tostring-from-each-value.js b/test/built-ins/TypedArray/prototype/toLocaleString/calls-tostring-from-each-value.js
index 1329e4bd2b..5dfcf91d4a 100644
--- a/test/built-ins/TypedArray/prototype/toLocaleString/calls-tostring-from-each-value.js
+++ b/test/built-ins/TypedArray/prototype/toLocaleString/calls-tostring-from-each-value.js
@@ -47,11 +47,15 @@ Number.prototype.toLocaleString = function() {
   };
 };
 
+if (typeof BigInt !== "undefined") {
+  BigInt.prototype.toLocaleString = Number.prototype.toLocaleString;
+}
+
 var arr = [42, 0];
 var expected = ["hacks1", "hacks2"].join(separator);
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA(arr);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N(arr));
   calls = 0;
   assert.sameValue(sample.toLocaleString(), expected, "returns expected value");
   assert.sameValue(calls, 2, "toString called once for each item");
diff --git a/test/built-ins/TypedArray/prototype/toLocaleString/calls-valueof-from-each-value.js b/test/built-ins/TypedArray/prototype/toLocaleString/calls-valueof-from-each-value.js
index 06f7bc0e05..25603f3722 100644
--- a/test/built-ins/TypedArray/prototype/toLocaleString/calls-valueof-from-each-value.js
+++ b/test/built-ins/TypedArray/prototype/toLocaleString/calls-valueof-from-each-value.js
@@ -45,11 +45,15 @@ Number.prototype.toLocaleString = function() {
   };
 };
 
+if (typeof BigInt !== "undefined") {
+  BigInt.prototype.toLocaleString = Number.prototype.toLocaleString;
+}
+
 var arr = [42, 0];
 var expected = ["hacks1", "hacks2"].join(separator);
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA(arr);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N(arr));
   calls = 0;
   assert.sameValue(sample.toLocaleString(), expected, "returns expected value");
   assert.sameValue(calls, 2, "valueOf called once for each item");
diff --git a/test/built-ins/TypedArray/prototype/toLocaleString/get-length-uses-internal-arraylength.js b/test/built-ins/TypedArray/prototype/toLocaleString/get-length-uses-internal-arraylength.js
index 5d061ebaf4..72e76979e9 100644
--- a/test/built-ins/TypedArray/prototype/toLocaleString/get-length-uses-internal-arraylength.js
+++ b/test/built-ins/TypedArray/prototype/toLocaleString/get-length-uses-internal-arraylength.js
@@ -30,8 +30,8 @@ var desc = {
 
 Object.defineProperty(TypedArray.prototype, "length", desc);
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43]));
 
   Object.defineProperty(TA.prototype, "length", desc);
   Object.defineProperty(sample, "length", desc);
diff --git a/test/built-ins/TypedArray/prototype/toLocaleString/return-abrupt-from-firstelement-tolocalestring.js b/test/built-ins/TypedArray/prototype/toLocaleString/return-abrupt-from-firstelement-tolocalestring.js
index ab58c6eaca..be087cfd14 100644
--- a/test/built-ins/TypedArray/prototype/toLocaleString/return-abrupt-from-firstelement-tolocalestring.js
+++ b/test/built-ins/TypedArray/prototype/toLocaleString/return-abrupt-from-firstelement-tolocalestring.js
@@ -31,11 +31,15 @@ Number.prototype.toLocaleString = function() {
   throw new Test262Error();
 };
 
+if (typeof BigInt !== "undefined") {
+  BigInt.prototype.toLocaleString = Number.prototype.toLocaleString;
+}
+
 var arr = [42, 0];
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   calls = 0;
-  var sample = new TA(arr);
+  var sample = new TA(N(arr));
   assert.throws(Test262Error, function() {
     sample.toLocaleString();
   });
diff --git a/test/built-ins/TypedArray/prototype/toLocaleString/return-abrupt-from-firstelement-tostring.js b/test/built-ins/TypedArray/prototype/toLocaleString/return-abrupt-from-firstelement-tostring.js
index 736d7ff061..433613030c 100644
--- a/test/built-ins/TypedArray/prototype/toLocaleString/return-abrupt-from-firstelement-tostring.js
+++ b/test/built-ins/TypedArray/prototype/toLocaleString/return-abrupt-from-firstelement-tostring.js
@@ -43,10 +43,14 @@ Number.prototype.toLocaleString = function() {
   };
 };
 
+if (typeof BigInt !== "undefined") {
+  BigInt.prototype.toLocaleString = Number.prototype.toLocaleString;
+}
+
 var arr = [42, 0];
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA(arr);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N(arr));
   calls = 0;
   assert.throws(Test262Error, function() {
     sample.toLocaleString();
diff --git a/test/built-ins/TypedArray/prototype/toLocaleString/return-abrupt-from-firstelement-valueof.js b/test/built-ins/TypedArray/prototype/toLocaleString/return-abrupt-from-firstelement-valueof.js
index 81102c73d1..b283f1db11 100644
--- a/test/built-ins/TypedArray/prototype/toLocaleString/return-abrupt-from-firstelement-valueof.js
+++ b/test/built-ins/TypedArray/prototype/toLocaleString/return-abrupt-from-firstelement-valueof.js
@@ -44,10 +44,14 @@ Number.prototype.toLocaleString = function() {
   };
 };
 
+if (typeof BigInt !== "undefined") {
+  BigInt.prototype.toLocaleString = Number.prototype.toLocaleString;
+}
+
 var arr = [42, 0];
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA(arr);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N(arr));
   calls = 0;
   assert.throws(Test262Error, function() {
     sample.toLocaleString();
diff --git a/test/built-ins/TypedArray/prototype/toLocaleString/return-abrupt-from-nextelement-tolocalestring.js b/test/built-ins/TypedArray/prototype/toLocaleString/return-abrupt-from-nextelement-tolocalestring.js
index 0909a1dcd1..013f2afc31 100644
--- a/test/built-ins/TypedArray/prototype/toLocaleString/return-abrupt-from-nextelement-tolocalestring.js
+++ b/test/built-ins/TypedArray/prototype/toLocaleString/return-abrupt-from-nextelement-tolocalestring.js
@@ -34,11 +34,15 @@ Number.prototype.toLocaleString = function() {
   }
 };
 
+if (typeof BigInt !== "undefined") {
+  BigInt.prototype.toLocaleString = Number.prototype.toLocaleString;
+}
+
 var arr = [42, 0];
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   calls = 0;
-  var sample = new TA(arr);
+  var sample = new TA(N(arr));
   assert.throws(Test262Error, function() {
     sample.toLocaleString();
   });
diff --git a/test/built-ins/TypedArray/prototype/toLocaleString/return-abrupt-from-nextelement-tostring.js b/test/built-ins/TypedArray/prototype/toLocaleString/return-abrupt-from-nextelement-tostring.js
index 1b7330e922..9d2eed6388 100644
--- a/test/built-ins/TypedArray/prototype/toLocaleString/return-abrupt-from-nextelement-tostring.js
+++ b/test/built-ins/TypedArray/prototype/toLocaleString/return-abrupt-from-nextelement-tostring.js
@@ -45,10 +45,14 @@ Number.prototype.toLocaleString = function() {
   };
 };
 
+if (typeof BigInt !== "undefined") {
+  BigInt.prototype.toLocaleString = Number.prototype.toLocaleString;
+}
+
 var arr = [42, 0];
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA(arr);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N(arr));
   calls = 0;
   assert.throws(Test262Error, function() {
     sample.toLocaleString();
diff --git a/test/built-ins/TypedArray/prototype/toLocaleString/return-abrupt-from-nextelement-valueof.js b/test/built-ins/TypedArray/prototype/toLocaleString/return-abrupt-from-nextelement-valueof.js
index 336b4b49b7..d70d442f55 100644
--- a/test/built-ins/TypedArray/prototype/toLocaleString/return-abrupt-from-nextelement-valueof.js
+++ b/test/built-ins/TypedArray/prototype/toLocaleString/return-abrupt-from-nextelement-valueof.js
@@ -46,10 +46,14 @@ Number.prototype.toLocaleString = function() {
   };
 };
 
+if (typeof BigInt !== "undefined") {
+  BigInt.prototype.toLocaleString = Number.prototype.toLocaleString;
+}
+
 var arr = [42, 0];
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA(arr);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N(arr));
   calls = 0;
   assert.throws(Test262Error, function() {
     sample.toLocaleString();
diff --git a/test/built-ins/TypedArray/prototype/toLocaleString/return-result.js b/test/built-ins/TypedArray/prototype/toLocaleString/return-result.js
index 3880798df7..f5825158fa 100644
--- a/test/built-ins/TypedArray/prototype/toLocaleString/return-result.js
+++ b/test/built-ins/TypedArray/prototype/toLocaleString/return-result.js
@@ -35,8 +35,8 @@ var separator = ["", ""].toLocaleString();
 
 var arr = [42, 0, 43];
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA(arr);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N(arr));
   var expected =
     sample[0].toLocaleString().toString() +
     separator +
diff --git a/test/built-ins/TypedArray/prototype/values/iter-prototype.js b/test/built-ins/TypedArray/prototype/values/iter-prototype.js
index 4bf31e1846..55913d2666 100644
--- a/test/built-ins/TypedArray/prototype/values/iter-prototype.js
+++ b/test/built-ins/TypedArray/prototype/values/iter-prototype.js
@@ -17,8 +17,8 @@ features: [Symbol.iterator, TypedArray]
 
 var ArrayIteratorProto = Object.getPrototypeOf([][Symbol.iterator]());
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([0, 42, 64]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([0, 42, 64]));
   var iter = sample.values();
 
   assert.sameValue(Object.getPrototypeOf(iter), ArrayIteratorProto);
diff --git a/test/built-ins/TypedArray/prototype/values/return-itor.js b/test/built-ins/TypedArray/prototype/values/return-itor.js
index 1877d7becc..31b9f410f1 100644
--- a/test/built-ins/TypedArray/prototype/values/return-itor.js
+++ b/test/built-ins/TypedArray/prototype/values/return-itor.js
@@ -13,22 +13,22 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-var sample = new Int8Array([0, 42, 64]);
+var sample = [0, 42, 64];
 
-testWithTypedArrayConstructors(function(TA) {
-  var typedArray = new TA(sample);
+testWithTypedArrayConstructors(function(TA, N) {
+  var typedArray = new TA(N(sample));
   var itor = typedArray.values();
 
   var next = itor.next();
-  assert.sameValue(next.value, 0);
+  assert.sameValue(next.value, N(0));
   assert.sameValue(next.done, false);
 
   next = itor.next();
-  assert.sameValue(next.value, 42);
+  assert.sameValue(next.value, N(42));
   assert.sameValue(next.done, false);
 
   next = itor.next();
-  assert.sameValue(next.value, 64);
+  assert.sameValue(next.value, N(64));
   assert.sameValue(next.done, false);
 
   next = itor.next();
diff --git a/test/built-ins/TypedArrays/from/custom-ctor-returns-other-instance.js b/test/built-ins/TypedArrays/from/custom-ctor-returns-other-instance.js
index 8a01176822..b59bf22971 100644
--- a/test/built-ins/TypedArrays/from/custom-ctor-returns-other-instance.js
+++ b/test/built-ins/TypedArrays/from/custom-ctor-returns-other-instance.js
@@ -23,12 +23,14 @@ includes: [testTypedArray.js]
 features: [Symbol.iterator, TypedArray]
 ---*/
 
-var sourceItor = [1, 2];
-var sourceObj = {
-  length: 2
-};
+testWithTypedArrayConstructors(function(TA, N) {
+  var sourceItor = N([1, 2]);
+  var sourceObj = {
+    0: N(0),
+    1: N(0),
+    length: 2
+  };
 
-testWithTypedArrayConstructors(function(TA) {
   var result;
   var custom = new TA(2);
   var ctor = function() {
diff --git a/test/built-ins/TypedArrays/from/mapfn-arguments.js b/test/built-ins/TypedArrays/from/mapfn-arguments.js
index 6d102d1b6c..65150c85b9 100644
--- a/test/built-ins/TypedArrays/from/mapfn-arguments.js
+++ b/test/built-ins/TypedArrays/from/mapfn-arguments.js
@@ -19,7 +19,7 @@ features: [TypedArray]
 
 var source = [42, 43, 44];
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var results = [];
   var mapfn = function(kValue, k) {
     results.push({
@@ -27,6 +27,7 @@ testWithTypedArrayConstructors(function(TA) {
       k: k,
       argsLength: arguments.length
     });
+    return N(0);
   };
 
   TA.from(source, mapfn);
diff --git a/test/built-ins/TypedArrays/from/mapfn-this-with-thisarg.js b/test/built-ins/TypedArrays/from/mapfn-this-with-thisarg.js
index 2fb965d08c..2df9a0efc5 100644
--- a/test/built-ins/TypedArrays/from/mapfn-this-with-thisarg.js
+++ b/test/built-ins/TypedArrays/from/mapfn-this-with-thisarg.js
@@ -22,10 +22,11 @@ features: [TypedArray]
 var source = [42, 43];
 var thisArg = {};
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var results = [];
   var mapfn = function() {
     results.push(this);
+    return N(0);
   };
 
   TA.from(source, mapfn, thisArg);
diff --git a/test/built-ins/TypedArrays/from/mapfn-this-without-thisarg-non-strict.js b/test/built-ins/TypedArrays/from/mapfn-this-without-thisarg-non-strict.js
index 02eeaba113..e136207a35 100644
--- a/test/built-ins/TypedArrays/from/mapfn-this-without-thisarg-non-strict.js
+++ b/test/built-ins/TypedArrays/from/mapfn-this-without-thisarg-non-strict.js
@@ -23,13 +23,14 @@ features: [TypedArray]
 var source = [42, 43];
 var global = this;
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var results = [];
-  var mapfn = function() {
+  var mapfn = function(x) {
     results.push(this);
+    return N(x);
   };
 
-  TA.from(source, mapfn);
+  TA.from(N(source), mapfn);
 
   assert.sameValue(results.length, 2);
   assert.sameValue(results[0], global);
diff --git a/test/built-ins/TypedArrays/from/mapfn-this-without-thisarg-strict.js b/test/built-ins/TypedArrays/from/mapfn-this-without-thisarg-strict.js
index 61612fa35a..ca2968c7ac 100644
--- a/test/built-ins/TypedArrays/from/mapfn-this-without-thisarg-strict.js
+++ b/test/built-ins/TypedArrays/from/mapfn-this-without-thisarg-strict.js
@@ -22,10 +22,11 @@ features: [TypedArray]
 
 var source = [42, 43];
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var results = [];
   var mapfn = function() {
     results.push(this);
+    return N(0);
   };
 
   TA.from(source, mapfn);
diff --git a/test/built-ins/TypedArrays/from/new-instance-using-custom-ctor.js b/test/built-ins/TypedArrays/from/new-instance-using-custom-ctor.js
index 2fe53a328f..bf8c34acf3 100644
--- a/test/built-ins/TypedArrays/from/new-instance-using-custom-ctor.js
+++ b/test/built-ins/TypedArrays/from/new-instance-using-custom-ctor.js
@@ -10,7 +10,7 @@ features: [TypedArray]
 
 var source = [42, 43, 42];
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var called = 0;
 
   var ctor = function(len) {
@@ -19,11 +19,11 @@ testWithTypedArrayConstructors(function(TA) {
     return new TA(len);
   };
 
-  var result = TA.from.call(ctor, source);
+  var result = TA.from.call(ctor, N(source));
   assert.sameValue(result.length, 3);
-  assert.sameValue(result[0], 42);
-  assert.sameValue(result[1], 43);
-  assert.sameValue(result[2], 42);
+  assert.sameValue(result[0], N(42));
+  assert.sameValue(result[1], N(43));
+  assert.sameValue(result[2], N(42));
   assert.sameValue(result.constructor, TA);
   assert.sameValue(Object.getPrototypeOf(result), TA.prototype);
   assert.sameValue(called, 1);
diff --git a/test/built-ins/TypedArrays/from/new-instance-with-mapfn.js b/test/built-ins/TypedArrays/from/new-instance-with-mapfn.js
index ab8da0b98c..66536c623d 100644
--- a/test/built-ins/TypedArrays/from/new-instance-with-mapfn.js
+++ b/test/built-ins/TypedArrays/from/new-instance-with-mapfn.js
@@ -10,16 +10,16 @@ features: [TypedArray]
 
 var source = [42, 43, 42];
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var mapfn = function(kValue) {
-    return kValue * 2;
+    return N(kValue * 2);
   };
 
   var result = TA.from(source, mapfn);
   assert.sameValue(result.length, 3);
-  assert.sameValue(result[0], 84);
-  assert.sameValue(result[1], 86);
-  assert.sameValue(result[2], 84);
+  assert.sameValue(result[0], N(84));
+  assert.sameValue(result[1], N(86));
+  assert.sameValue(result[2], N(84));
   assert.sameValue(result.constructor, TA);
   assert.sameValue(Object.getPrototypeOf(result), TA.prototype);
 });
diff --git a/test/built-ins/TypedArrays/from/new-instance-without-mapfn.js b/test/built-ins/TypedArrays/from/new-instance-without-mapfn.js
index d7ac6abc2c..ebedc93c80 100644
--- a/test/built-ins/TypedArrays/from/new-instance-without-mapfn.js
+++ b/test/built-ins/TypedArrays/from/new-instance-without-mapfn.js
@@ -10,12 +10,12 @@ features: [TypedArray]
 
 var source = [42, 43, 42];
 
-testWithTypedArrayConstructors(function(TA) {
-  var result = TA.from(source);
+testWithTypedArrayConstructors(function(TA, N) {
+  var result = TA.from(N(source));
   assert.sameValue(result.length, 3);
-  assert.sameValue(result[0], 42);
-  assert.sameValue(result[1], 43);
-  assert.sameValue(result[2], 42);
+  assert.sameValue(result[0], N(42));
+  assert.sameValue(result[1], N(43));
+  assert.sameValue(result[2], N(42));
   assert.sameValue(result.constructor, TA);
   assert.sameValue(Object.getPrototypeOf(result), TA.prototype);
 });
diff --git a/test/built-ins/TypedArrays/from/set-value-abrupt-completion.js b/test/built-ins/TypedArrays/from/set-value-abrupt-completion.js
index ddde226a2b..efae38c902 100644
--- a/test/built-ins/TypedArrays/from/set-value-abrupt-completion.js
+++ b/test/built-ins/TypedArrays/from/set-value-abrupt-completion.js
@@ -25,9 +25,8 @@ var obj = {
   }
 };
 
-var source = [42, obj, 1];
-
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
+  var source = [N(42), obj, N(1)];
   var lastValue;
   var mapfn = function(kValue) {
     lastValue = kValue;
diff --git a/test/built-ins/TypedArrays/internals/DefineOwnProperty/desc-value-throws.js b/test/built-ins/TypedArrays/internals/DefineOwnProperty/desc-value-throws.js
index 6572c1f946..ba658f2214 100644
--- a/test/built-ins/TypedArrays/internals/DefineOwnProperty/desc-value-throws.js
+++ b/test/built-ins/TypedArrays/internals/DefineOwnProperty/desc-value-throws.js
@@ -31,8 +31,8 @@ var obj = {
   }
 };
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42]));
 
   assert.throws(Test262Error, function() {
     Object.defineProperty(sample, "0", {value: obj});
diff --git a/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-greater-than-last-index.js b/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-greater-than-last-index.js
index afb5672b99..4cc13c6f53 100644
--- a/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-greater-than-last-index.js
+++ b/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-greater-than-last-index.js
@@ -20,8 +20,8 @@ includes: [testTypedArray.js]
 features: [Reflect, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43]));
 
   assert.sameValue(
     Reflect.defineProperty(sample, "2", {
diff --git a/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-lower-than-zero.js b/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-lower-than-zero.js
index ba21aec9c5..3c63a0ab7f 100644
--- a/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-lower-than-zero.js
+++ b/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-lower-than-zero.js
@@ -18,8 +18,8 @@ includes: [testTypedArray.js]
 features: [Reflect, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43]));
 
   assert.sameValue(
     Reflect.defineProperty(sample, "-1", {
diff --git a/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-minus-zero.js b/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-minus-zero.js
index c891f5cc1a..207344f831 100644
--- a/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-minus-zero.js
+++ b/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-minus-zero.js
@@ -18,7 +18,7 @@ includes: [testTypedArray.js]
 features: [Reflect, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample = new TA(2);
 
   assert.sameValue(
@@ -31,6 +31,6 @@ testWithTypedArrayConstructors(function(TA) {
     false,
     "defineProperty returns false"
   );
-  assert.sameValue(sample[0], 0, "does not change the value for [0]");
+  assert.sameValue(sample[0], N(0), "does not change the value for [0]");
   assert.sameValue(sample["-0"], undefined, "does define a value for ['-0']");
 });
diff --git a/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-not-canonical-index.js b/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-not-canonical-index.js
index 193d916656..33511ca7b4 100644
--- a/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-not-canonical-index.js
+++ b/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-not-canonical-index.js
@@ -24,12 +24,6 @@ var keys = [
   "0.0000001"
 ];
 
-var dataDesc = {
-  value: 42,
-  writable: true,
-  configurable: true
-};
-
 var fnset = function() {};
 var fnget = function() {};
 
@@ -40,8 +34,14 @@ var acDesc = {
   configurable: false
 };
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   keys.forEach(function(key) {
+    var dataDesc = {
+      value: N(42),
+      writable: true,
+      configurable: true
+    };
+
     var sample1 = new TA();
 
     assert.sameValue(
@@ -50,7 +50,7 @@ testWithTypedArrayConstructors(function(TA) {
       "return true after defining data property [" + key + "]"
     );
 
-    assert.sameValue(sample1[key], 42, "value is set to [" + key + "]");
+    assert.sameValue(sample1[key], N(42), "value is set to [" + key + "]");
     verifyNotEnumerable(sample1, key);
     verifyWritable(sample1, key);
     verifyConfigurable(sample1, key);
diff --git a/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-not-integer.js b/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-not-integer.js
index b30fc17ece..4232ab6382 100644
--- a/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-not-integer.js
+++ b/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-not-integer.js
@@ -16,7 +16,7 @@ includes: [testTypedArray.js]
 features: [Reflect, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample = new TA(2);
 
   assert.sameValue(
@@ -29,7 +29,7 @@ testWithTypedArrayConstructors(function(TA) {
     false,
     "0.1"
   );
-  assert.sameValue(sample[0], 0, "'0.1' - does not change the value for [0]");
+  assert.sameValue(sample[0], N(0), "'0.1' - does not change the value for [0]");
   assert.sameValue(
     sample["0.1"],
     undefined,
@@ -47,7 +47,7 @@ testWithTypedArrayConstructors(function(TA) {
     "0.000001"
   );
   assert.sameValue(
-    sample[0], 0,
+    sample[0], N(0),
     "'0.000001' - does not change the value for [0]"
   );
   assert.sameValue(
@@ -66,7 +66,7 @@ testWithTypedArrayConstructors(function(TA) {
     false,
     "1.1"
   );
-  assert.sameValue(sample[1], 0, "'1.1' - does not change the value for [1]");
+  assert.sameValue(sample[1], N(0), "'1.1' - does not change the value for [1]");
   assert.sameValue(
     sample["1.1"],
     undefined,
@@ -84,11 +84,11 @@ testWithTypedArrayConstructors(function(TA) {
     "Infinity"
   );
   assert.sameValue(
-    sample[0], 0,
+    sample[0], N(0),
     "'Infinity' - does not change the value for [0]"
   );
   assert.sameValue(
-    sample[1], 0,
+    sample[1], N(0),
     "'Infinity' - does not change the value for [1]"
   );
   assert.sameValue(
@@ -108,11 +108,11 @@ testWithTypedArrayConstructors(function(TA) {
     "-Infinity"
   );
   assert.sameValue(
-    sample[0], 0,
+    sample[0], N(0),
     "'-Infinity' - does not change the value for [0]"
   );
   assert.sameValue(
-    sample[1], 0,
+    sample[1], N(0),
     "'-Infinity' - does not change the value for [1]"
   );
   assert.sameValue(
diff --git a/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-not-numeric-index.js b/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-not-numeric-index.js
index 845a9afbe2..b51e1f2376 100644
--- a/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-not-numeric-index.js
+++ b/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-not-numeric-index.js
@@ -17,8 +17,8 @@ includes: [testTypedArray.js, propertyHelper.js]
 features: [Reflect, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43]));
 
   assert.sameValue(
     Reflect.defineProperty(sample, "foo", {value:42}),
diff --git a/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-numericindex-accessor-desc.js b/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-numericindex-accessor-desc.js
index 5d8be8a2a6..0c9e907975 100644
--- a/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-numericindex-accessor-desc.js
+++ b/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-numericindex-accessor-desc.js
@@ -18,7 +18,7 @@ includes: [testTypedArray.js]
 features: [Reflect, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample = new TA(2);
 
   assert.sameValue(
@@ -31,7 +31,7 @@ testWithTypedArrayConstructors(function(TA) {
     false,
     "get accessor"
   );
-  assert.sameValue(sample[0], 0, "get accessor - side effect check");
+  assert.sameValue(sample[0], N(0), "get accessor - side effect check");
 
   assert.sameValue(
     Reflect.defineProperty(sample, "0", {
@@ -41,7 +41,7 @@ testWithTypedArrayConstructors(function(TA) {
     false,
     "set accessor"
   );
-  assert.sameValue(sample[0], 0, "set accessor - side effect check");
+  assert.sameValue(sample[0], N(0), "set accessor - side effect check");
 
   assert.sameValue(
     Reflect.defineProperty(sample, "0", {
@@ -54,5 +54,5 @@ testWithTypedArrayConstructors(function(TA) {
     false,
     "get and set accessors"
   );
-  assert.sameValue(sample[0], 0, "get and set accessors - side effect check");
+  assert.sameValue(sample[0], N(0), "get and set accessors - side effect check");
 });
diff --git a/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-numericindex-desc-configurable.js b/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-numericindex-desc-configurable.js
index 133f3343d5..5b03b57bfc 100644
--- a/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-numericindex-desc-configurable.js
+++ b/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-numericindex-desc-configurable.js
@@ -18,7 +18,7 @@ includes: [testTypedArray.js]
 features: [Reflect, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample = new TA(2);
 
   assert.sameValue(
@@ -31,5 +31,5 @@ testWithTypedArrayConstructors(function(TA) {
     false,
     "defineProperty's result"
   );
-  assert.sameValue(sample[0], 0, "side effect check");
+  assert.sameValue(sample[0], N(0), "side effect check");
 });
diff --git a/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-numericindex-desc-not-enumerable.js b/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-numericindex-desc-not-enumerable.js
index 09526d11f7..7bf8861403 100644
--- a/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-numericindex-desc-not-enumerable.js
+++ b/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-numericindex-desc-not-enumerable.js
@@ -18,7 +18,7 @@ includes: [testTypedArray.js]
 features: [Reflect, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample = new TA(2);
 
   assert.sameValue(
@@ -31,5 +31,5 @@ testWithTypedArrayConstructors(function(TA) {
     false,
     "defineProperty's result"
   );
-  assert.sameValue(sample[0], 0, "side effect check");
+  assert.sameValue(sample[0], N(0), "side effect check");
 });
diff --git a/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-numericindex-desc-not-writable.js b/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-numericindex-desc-not-writable.js
index 08c9a1b3a7..ab460e4e67 100644
--- a/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-numericindex-desc-not-writable.js
+++ b/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-numericindex-desc-not-writable.js
@@ -18,7 +18,7 @@ includes: [testTypedArray.js]
 features: [Reflect, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample = new TA(2);
 
   assert.sameValue(
@@ -31,5 +31,5 @@ testWithTypedArrayConstructors(function(TA) {
     false,
     "defineProperty's result"
   );
-  assert.sameValue(sample[0], 0, "side effect check");
+  assert.sameValue(sample[0], N(0), "side effect check");
 });
diff --git a/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-numericindex.js b/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-numericindex.js
index d815738b6e..c6ddb10707 100644
--- a/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-numericindex.js
+++ b/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-numericindex.js
@@ -18,12 +18,12 @@ includes: [testTypedArray.js, propertyHelper.js]
 features: [Reflect, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 42]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 42]));
 
   assert.sameValue(
     Reflect.defineProperty(sample, "0", {
-      value: 8,
+      value: N(8),
       configurable: false,
       enumerable: true,
       writable: true
@@ -31,10 +31,10 @@ testWithTypedArrayConstructors(function(TA) {
     true
   );
 
-  assert.sameValue(sample[0], 8, "property value was set");
+  assert.sameValue(sample[0], N(8), "property value was set");
   var desc = Object.getOwnPropertyDescriptor(sample, "0");
 
-  assert.sameValue(desc.value, 8, "desc.value");
+  assert.sameValue(desc.value, N(8), "desc.value");
   assert.sameValue(desc.writable, true, "property is writable");
 
   verifyEnumerable(sample, "0");
diff --git a/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-symbol.js b/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-symbol.js
index c5cff6eee3..856997801c 100644
--- a/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-symbol.js
+++ b/test/built-ins/TypedArrays/internals/DefineOwnProperty/key-is-symbol.js
@@ -15,8 +15,8 @@ includes: [testTypedArray.js, propertyHelper.js]
 features: [Reflect, Symbol, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43]));
 
   var s1 = Symbol("foo");
   assert.sameValue(
diff --git a/test/built-ins/TypedArrays/internals/DefineOwnProperty/non-extensible-new-key.js b/test/built-ins/TypedArrays/internals/DefineOwnProperty/non-extensible-new-key.js
index e74c95f12f..681630928d 100644
--- a/test/built-ins/TypedArrays/internals/DefineOwnProperty/non-extensible-new-key.js
+++ b/test/built-ins/TypedArrays/internals/DefineOwnProperty/non-extensible-new-key.js
@@ -17,8 +17,8 @@ includes: [testTypedArray.js]
 features: [Reflect, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43]));
   Object.preventExtensions(sample);
 
   assert.sameValue(
diff --git a/test/built-ins/TypedArrays/internals/DefineOwnProperty/non-extensible-redefine-key.js b/test/built-ins/TypedArrays/internals/DefineOwnProperty/non-extensible-redefine-key.js
index a0baaf57e5..5983e6dfbd 100644
--- a/test/built-ins/TypedArrays/internals/DefineOwnProperty/non-extensible-redefine-key.js
+++ b/test/built-ins/TypedArrays/internals/DefineOwnProperty/non-extensible-redefine-key.js
@@ -17,8 +17,8 @@ includes: [testTypedArray.js, propertyHelper.js]
 features: [Reflect, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43]));
   sample.foo = true;
   sample.bar = true;
 
diff --git a/test/built-ins/TypedArrays/internals/DefineOwnProperty/set-value.js b/test/built-ins/TypedArrays/internals/DefineOwnProperty/set-value.js
index ff71bee907..0571a46ead 100644
--- a/test/built-ins/TypedArrays/internals/DefineOwnProperty/set-value.js
+++ b/test/built-ins/TypedArrays/internals/DefineOwnProperty/set-value.js
@@ -25,21 +25,21 @@ includes: [testTypedArray.js]
 features: [Reflect, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([0, 0]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([0, 0]));
 
   assert.sameValue(
-    Reflect.defineProperty(sample, "0", {value: 1}),
+    Reflect.defineProperty(sample, "0", {value: N(1)}),
     true,
     "set value for sample[0] returns true"
   );
 
   assert.sameValue(
-    Reflect.defineProperty(sample, "1", {value: 2}),
+    Reflect.defineProperty(sample, "1", {value: N(2)}),
     true,
     "set value for sample[1] returns true"
   );
 
-  assert.sameValue(sample[0], 1, "sample[0]");
-  assert.sameValue(sample[1], 2, "sample[1]");
+  assert.sameValue(sample[0], N(1), "sample[0]");
+  assert.sameValue(sample[1], N(2), "sample[1]");
 });
diff --git a/test/built-ins/TypedArrays/internals/DefineOwnProperty/this-is-not-extensible.js b/test/built-ins/TypedArrays/internals/DefineOwnProperty/this-is-not-extensible.js
index 5e586c7759..e4f54b45e6 100644
--- a/test/built-ins/TypedArrays/internals/DefineOwnProperty/this-is-not-extensible.js
+++ b/test/built-ins/TypedArrays/internals/DefineOwnProperty/this-is-not-extensible.js
@@ -17,8 +17,8 @@ includes: [testTypedArray.js]
 features: [Reflect, Symbol, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43]));
 
   Object.preventExtensions(sample);
 
diff --git a/test/built-ins/TypedArrays/internals/Get/detached-buffer-key-is-not-numeric-index.js b/test/built-ins/TypedArrays/internals/Get/detached-buffer-key-is-not-numeric-index.js
index b0032bad71..4ebb82f7e0 100644
--- a/test/built-ins/TypedArrays/internals/Get/detached-buffer-key-is-not-numeric-index.js
+++ b/test/built-ins/TypedArrays/internals/Get/detached-buffer-key-is-not-numeric-index.js
@@ -17,8 +17,8 @@ includes: [testTypedArray.js, detachArrayBuffer.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43]));
   sample.foo = "test262";
 
   $DETACHBUFFER(sample.buffer);
diff --git a/test/built-ins/TypedArrays/internals/Get/detached-buffer-key-is-symbol.js b/test/built-ins/TypedArrays/internals/Get/detached-buffer-key-is-symbol.js
index 2b18a93ea5..9910fe6ebe 100644
--- a/test/built-ins/TypedArrays/internals/Get/detached-buffer-key-is-symbol.js
+++ b/test/built-ins/TypedArrays/internals/Get/detached-buffer-key-is-symbol.js
@@ -15,8 +15,8 @@ includes: [testTypedArray.js, detachArrayBuffer.js]
 features: [Symbol, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43]));
   $DETACHBUFFER(sample.buffer);
 
   var s = Symbol("1");
diff --git a/test/built-ins/TypedArrays/internals/Get/detached-buffer.js b/test/built-ins/TypedArrays/internals/Get/detached-buffer.js
index 4e52b1cf0a..467aff7cf5 100644
--- a/test/built-ins/TypedArrays/internals/Get/detached-buffer.js
+++ b/test/built-ins/TypedArrays/internals/Get/detached-buffer.js
@@ -17,8 +17,8 @@ includes: [testTypedArray.js, detachArrayBuffer.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42]));
   $DETACHBUFFER(sample.buffer);
 
   assert.throws(TypeError, function() {
diff --git a/test/built-ins/TypedArrays/internals/Get/indexed-value-sab.js b/test/built-ins/TypedArrays/internals/Get/indexed-value-sab.js
index 6145da9e24..c9e49d861d 100644
--- a/test/built-ins/TypedArrays/internals/Get/indexed-value-sab.js
+++ b/test/built-ins/TypedArrays/internals/Get/indexed-value-sab.js
@@ -18,11 +18,11 @@ var throwDesc = {
 Object.defineProperty(proto, "0", throwDesc);
 Object.defineProperty(proto, "1", throwDesc);
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sab = new SharedArrayBuffer(TA.BYTES_PER_ELEMENT * 2);
   var sample = new TA(sab);
-  sample.set([42, 1]);
+  sample.set([N(42), N(1)]);
 
-  assert.sameValue(sample["0"], 42);
-  assert.sameValue(sample["1"], 1);
+  assert.sameValue(sample["0"], N(42));
+  assert.sameValue(sample["1"], N(1));
 });
diff --git a/test/built-ins/TypedArrays/internals/Get/indexed-value.js b/test/built-ins/TypedArrays/internals/Get/indexed-value.js
index f58c528b6a..cb761c6db4 100644
--- a/test/built-ins/TypedArrays/internals/Get/indexed-value.js
+++ b/test/built-ins/TypedArrays/internals/Get/indexed-value.js
@@ -26,9 +26,9 @@ var throwDesc = {
 Object.defineProperty(proto, "0", throwDesc);
 Object.defineProperty(proto, "1", throwDesc);
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 1]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 1]));
 
-  assert.sameValue(sample["0"], 42);
-  assert.sameValue(sample["1"], 1);
+  assert.sameValue(sample["0"], N(42));
+  assert.sameValue(sample["1"], N(1));
 });
diff --git a/test/built-ins/TypedArrays/internals/Get/key-is-not-integer.js b/test/built-ins/TypedArrays/internals/Get/key-is-not-integer.js
index 5ad684b787..258f11193e 100644
--- a/test/built-ins/TypedArrays/internals/Get/key-is-not-integer.js
+++ b/test/built-ins/TypedArrays/internals/Get/key-is-not-integer.js
@@ -30,8 +30,8 @@ Object.defineProperty(proto, "1.1", {
   }
 });
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43]));
 
   assert.sameValue(sample["1.1"], undefined);
 });
diff --git a/test/built-ins/TypedArrays/internals/Get/key-is-not-minus-zero.js b/test/built-ins/TypedArrays/internals/Get/key-is-not-minus-zero.js
index 851cf72b44..45e7af40fa 100644
--- a/test/built-ins/TypedArrays/internals/Get/key-is-not-minus-zero.js
+++ b/test/built-ins/TypedArrays/internals/Get/key-is-not-minus-zero.js
@@ -30,8 +30,8 @@ Object.defineProperty(proto, "-0", {
   }
 });
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43]));
 
   assert.sameValue(sample["-0"], undefined);
 });
diff --git a/test/built-ins/TypedArrays/internals/Get/key-is-not-numeric-index.js b/test/built-ins/TypedArrays/internals/Get/key-is-not-numeric-index.js
index 53824ad34a..116f042753 100644
--- a/test/built-ins/TypedArrays/internals/Get/key-is-not-numeric-index.js
+++ b/test/built-ins/TypedArrays/internals/Get/key-is-not-numeric-index.js
@@ -19,8 +19,8 @@ features: [TypedArray]
 
 TypedArray.prototype.baz = "test262";
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43]));
 
   assert.sameValue(
     sample.foo, undefined,
diff --git a/test/built-ins/TypedArrays/internals/Get/key-is-out-of-bounds.js b/test/built-ins/TypedArrays/internals/Get/key-is-out-of-bounds.js
index a6eaa05dfc..dfb3d0411d 100644
--- a/test/built-ins/TypedArrays/internals/Get/key-is-out-of-bounds.js
+++ b/test/built-ins/TypedArrays/internals/Get/key-is-out-of-bounds.js
@@ -34,8 +34,8 @@ Object.defineProperty(proto, "-1", throwDesc);
 Object.defineProperty(proto, "2", throwDesc);
 Object.defineProperty(proto, "3", throwDesc);
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43]));
 
   assert.sameValue(sample["-1"], undefined);
   assert.sameValue(sample["2"], undefined);
diff --git a/test/built-ins/TypedArrays/internals/Get/key-is-symbol.js b/test/built-ins/TypedArrays/internals/Get/key-is-symbol.js
index 1d05d06bc0..3454fd676d 100644
--- a/test/built-ins/TypedArrays/internals/Get/key-is-symbol.js
+++ b/test/built-ins/TypedArrays/internals/Get/key-is-symbol.js
@@ -18,8 +18,8 @@ features: [Symbol, TypedArray]
 var parentKey = Symbol("2");
 TypedArray.prototype[parentKey] = "test262";
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42]));
 
   var s1 = Symbol("1");
 
diff --git a/test/built-ins/TypedArrays/internals/GetOwnProperty/detached-buffer-key-is-not-number.js b/test/built-ins/TypedArrays/internals/GetOwnProperty/detached-buffer-key-is-not-number.js
index 81b274361f..c0f54cd4a4 100644
--- a/test/built-ins/TypedArrays/internals/GetOwnProperty/detached-buffer-key-is-not-number.js
+++ b/test/built-ins/TypedArrays/internals/GetOwnProperty/detached-buffer-key-is-not-number.js
@@ -17,8 +17,8 @@ includes: [testTypedArray.js, detachArrayBuffer.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43]));
   $DETACHBUFFER(sample.buffer);
 
   assert.sameValue(
diff --git a/test/built-ins/TypedArrays/internals/GetOwnProperty/detached-buffer-key-is-symbol.js b/test/built-ins/TypedArrays/internals/GetOwnProperty/detached-buffer-key-is-symbol.js
index 308a2973f1..b637e6fe34 100644
--- a/test/built-ins/TypedArrays/internals/GetOwnProperty/detached-buffer-key-is-symbol.js
+++ b/test/built-ins/TypedArrays/internals/GetOwnProperty/detached-buffer-key-is-symbol.js
@@ -17,8 +17,8 @@ includes: [testTypedArray.js, detachArrayBuffer.js]
 features: [Symbol, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43]));
   $DETACHBUFFER(sample.buffer);
 
   var s = Symbol("foo");
diff --git a/test/built-ins/TypedArrays/internals/GetOwnProperty/index-prop-desc.js b/test/built-ins/TypedArrays/internals/GetOwnProperty/index-prop-desc.js
index fe7f1eca26..0771ae51ec 100644
--- a/test/built-ins/TypedArrays/internals/GetOwnProperty/index-prop-desc.js
+++ b/test/built-ins/TypedArrays/internals/GetOwnProperty/index-prop-desc.js
@@ -19,17 +19,17 @@ includes: [testTypedArray.js, propertyHelper.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43]));
 
   var desc0 = Object.getOwnPropertyDescriptor(sample, 0);
-  assert.sameValue(desc0.value, 42, "value", "desc0.value === 42");
+  assert.sameValue(desc0.value, N(42), "value", "desc0.value === 42");
   assert.sameValue(desc0.writable, true, "index descriptor is writable [0]");
   verifyEnumerable(sample, "0", "index descriptor is enumerable [0]");
   verifyNotConfigurable(sample, "0", "index descriptor is not configurable [0]");
 
   var desc1 = Object.getOwnPropertyDescriptor(sample, 1);
-  assert.sameValue(desc1.value, 43, "value", "desc1.value === 43");
+  assert.sameValue(desc1.value, N(43), "value", "desc1.value === 43");
   assert.sameValue(desc1.writable, true, "index descriptor is writable [1]");
   verifyEnumerable(sample, "1", "index descriptor is enumerable [1]");
   verifyNotConfigurable(sample, "1", "index descriptor is not configurable [1]");
diff --git a/test/built-ins/TypedArrays/internals/GetOwnProperty/key-is-minus-zero.js b/test/built-ins/TypedArrays/internals/GetOwnProperty/key-is-minus-zero.js
index 1b1c828abc..93fb63a55b 100644
--- a/test/built-ins/TypedArrays/internals/GetOwnProperty/key-is-minus-zero.js
+++ b/test/built-ins/TypedArrays/internals/GetOwnProperty/key-is-minus-zero.js
@@ -29,8 +29,8 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42]));
 
   // -0 as a number value is converted to "0" before calling [[GetOwnProperty]]
   assert.sameValue(Object.getOwnPropertyDescriptor(sample, "-0"), undefined);
diff --git a/test/built-ins/TypedArrays/internals/GetOwnProperty/key-is-not-canonical-index.js b/test/built-ins/TypedArrays/internals/GetOwnProperty/key-is-not-canonical-index.js
index 35b6fa01c5..e2f7352a03 100644
--- a/test/built-ins/TypedArrays/internals/GetOwnProperty/key-is-not-canonical-index.js
+++ b/test/built-ins/TypedArrays/internals/GetOwnProperty/key-is-not-canonical-index.js
@@ -26,9 +26,9 @@ var keys = [
   "0.0000001"
 ];
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   keys.forEach(function(key) {
-    var sample = new TA([42, 43]);
+    var sample = new TA(N([42, 43]));
 
     assert.sameValue(
       Object.getOwnPropertyDescriptor(sample, key),
diff --git a/test/built-ins/TypedArrays/internals/GetOwnProperty/key-is-not-integer.js b/test/built-ins/TypedArrays/internals/GetOwnProperty/key-is-not-integer.js
index f77950d728..78e7e59150 100644
--- a/test/built-ins/TypedArrays/internals/GetOwnProperty/key-is-not-integer.js
+++ b/test/built-ins/TypedArrays/internals/GetOwnProperty/key-is-not-integer.js
@@ -23,8 +23,8 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43]));
 
   assert.sameValue(Object.getOwnPropertyDescriptor(sample, "1.1"), undefined);
   assert.sameValue(Object.getOwnPropertyDescriptor(sample, "0.1"), undefined);
diff --git a/test/built-ins/TypedArrays/internals/GetOwnProperty/key-is-not-numeric-index.js b/test/built-ins/TypedArrays/internals/GetOwnProperty/key-is-not-numeric-index.js
index 57fd606ae5..32f68d2ceb 100644
--- a/test/built-ins/TypedArrays/internals/GetOwnProperty/key-is-not-numeric-index.js
+++ b/test/built-ins/TypedArrays/internals/GetOwnProperty/key-is-not-numeric-index.js
@@ -18,8 +18,8 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43]));
 
   assert.sameValue(
     Object.getOwnPropertyDescriptor(sample, "undef"),
diff --git a/test/built-ins/TypedArrays/internals/GetOwnProperty/key-is-out-of-bounds.js b/test/built-ins/TypedArrays/internals/GetOwnProperty/key-is-out-of-bounds.js
index 891bc7184d..a02b44bb4d 100644
--- a/test/built-ins/TypedArrays/internals/GetOwnProperty/key-is-out-of-bounds.js
+++ b/test/built-ins/TypedArrays/internals/GetOwnProperty/key-is-out-of-bounds.js
@@ -24,8 +24,8 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42]));
 
   assert.sameValue(Object.getOwnPropertyDescriptor(sample, "-1"), undefined);
   assert.sameValue(Object.getOwnPropertyDescriptor(sample, "-42"), undefined);
diff --git a/test/built-ins/TypedArrays/internals/GetOwnProperty/key-is-symbol.js b/test/built-ins/TypedArrays/internals/GetOwnProperty/key-is-symbol.js
index 6b440e1194..2d31cb822e 100644
--- a/test/built-ins/TypedArrays/internals/GetOwnProperty/key-is-symbol.js
+++ b/test/built-ins/TypedArrays/internals/GetOwnProperty/key-is-symbol.js
@@ -18,8 +18,8 @@ includes: [testTypedArray.js]
 features: [Symbol, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43]));
 
   var s = Symbol("foo");
   Object.defineProperty(sample, s, { value: "baz" });
diff --git a/test/built-ins/TypedArrays/internals/HasProperty/detached-buffer-key-is-not-number.js b/test/built-ins/TypedArrays/internals/HasProperty/detached-buffer-key-is-not-number.js
index 011e80c0b6..4a4b645403 100644
--- a/test/built-ins/TypedArrays/internals/HasProperty/detached-buffer-key-is-not-number.js
+++ b/test/built-ins/TypedArrays/internals/HasProperty/detached-buffer-key-is-not-number.js
@@ -18,8 +18,8 @@ includes: [testTypedArray.js, detachArrayBuffer.js]
 features: [Reflect, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43]));
   Object.defineProperty(sample, "bar", { value: 42 });
 
   $DETACHBUFFER(sample.buffer);
diff --git a/test/built-ins/TypedArrays/internals/HasProperty/detached-buffer-key-is-symbol.js b/test/built-ins/TypedArrays/internals/HasProperty/detached-buffer-key-is-symbol.js
index 2c34c3caa0..abc2bf4e3c 100644
--- a/test/built-ins/TypedArrays/internals/HasProperty/detached-buffer-key-is-symbol.js
+++ b/test/built-ins/TypedArrays/internals/HasProperty/detached-buffer-key-is-symbol.js
@@ -20,8 +20,8 @@ features: [Reflect, Symbol, TypedArray]
 var s1 = Symbol("foo");
 var s2 = Symbol("bar");
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43]));
   Object.defineProperty(sample, s1, { value: "baz" });
 
   $DETACHBUFFER(sample.buffer);
diff --git a/test/built-ins/TypedArrays/internals/HasProperty/indexed-value.js b/test/built-ins/TypedArrays/internals/HasProperty/indexed-value.js
index 5a3b0482ac..88aea9dc65 100644
--- a/test/built-ins/TypedArrays/internals/HasProperty/indexed-value.js
+++ b/test/built-ins/TypedArrays/internals/HasProperty/indexed-value.js
@@ -24,8 +24,8 @@ includes: [testTypedArray.js]
 features: [Reflect, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43]));
 
   assert.sameValue(Reflect.has(sample, 0), true);
   assert.sameValue(Reflect.has(sample, 1), true);
diff --git a/test/built-ins/TypedArrays/internals/HasProperty/key-is-not-canonical-index.js b/test/built-ins/TypedArrays/internals/HasProperty/key-is-not-canonical-index.js
index 7e20c5b24f..14ffa90728 100644
--- a/test/built-ins/TypedArrays/internals/HasProperty/key-is-not-canonical-index.js
+++ b/test/built-ins/TypedArrays/internals/HasProperty/key-is-not-canonical-index.js
@@ -25,7 +25,7 @@ var keys = [
   "0.0000001"
 ];
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   keys.forEach(function(key) {
     var sample = new TA(1);
 
@@ -43,7 +43,7 @@ testWithTypedArrayConstructors(function(TA) {
 
     delete TypedArray.prototype[key];
 
-    Object.defineProperty(sample, key, {value: 42});
+    Object.defineProperty(sample, key, {value: N(42)});
 
     assert.sameValue(
       Reflect.has(sample, key), true,
diff --git a/test/built-ins/TypedArrays/internals/OwnPropertyKeys/integer-indexes-and-string-and-symbol-keys-.js b/test/built-ins/TypedArrays/internals/OwnPropertyKeys/integer-indexes-and-string-and-symbol-keys-.js
index 9060bee4d7..d469c9ab1c 100644
--- a/test/built-ins/TypedArrays/internals/OwnPropertyKeys/integer-indexes-and-string-and-symbol-keys-.js
+++ b/test/built-ins/TypedArrays/internals/OwnPropertyKeys/integer-indexes-and-string-and-symbol-keys-.js
@@ -23,8 +23,8 @@ var s2 = Symbol("2");
 TypedArray.prototype[3] = 42;
 TypedArray.prototype.bar = 42;
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample1 = new TA([42, 42, 42]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample1 = new TA(N([42, 42, 42]));
   sample1[s1] = 42;
   sample1[s2] = 42;
   sample1.test262 = 42;
diff --git a/test/built-ins/TypedArrays/internals/OwnPropertyKeys/integer-indexes-and-string-keys.js b/test/built-ins/TypedArrays/internals/OwnPropertyKeys/integer-indexes-and-string-keys.js
index b227ef6f22..5f933e570b 100644
--- a/test/built-ins/TypedArrays/internals/OwnPropertyKeys/integer-indexes-and-string-keys.js
+++ b/test/built-ins/TypedArrays/internals/OwnPropertyKeys/integer-indexes-and-string-keys.js
@@ -20,8 +20,8 @@ features: [Reflect, TypedArray]
 TypedArray.prototype[3] = 42;
 TypedArray.prototype.bar = 42;
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample1 = new TA([42, 42, 42]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample1 = new TA(N([42, 42, 42]));
   sample1.test262 = 42;
   sample1.ecma262 = 42;
   var result1 = Reflect.ownKeys(sample1);
diff --git a/test/built-ins/TypedArrays/internals/OwnPropertyKeys/integer-indexes.js b/test/built-ins/TypedArrays/internals/OwnPropertyKeys/integer-indexes.js
index 00e57de342..17c78ca5a3 100644
--- a/test/built-ins/TypedArrays/internals/OwnPropertyKeys/integer-indexes.js
+++ b/test/built-ins/TypedArrays/internals/OwnPropertyKeys/integer-indexes.js
@@ -17,8 +17,8 @@ includes: [testTypedArray.js, compareArray.js]
 features: [Reflect, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample1 = new TA([42, 42, 42]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample1 = new TA(N([42, 42, 42]));
   var result1 = Reflect.ownKeys(sample1);
   assert(compareArray(result1, ["0", "1", "2"]), "result1");
 
diff --git a/test/built-ins/TypedArrays/internals/Set/detached-buffer-key-is-not-numeric-index.js b/test/built-ins/TypedArrays/internals/Set/detached-buffer-key-is-not-numeric-index.js
index 7382d626e7..d802d2fd5c 100644
--- a/test/built-ins/TypedArrays/internals/Set/detached-buffer-key-is-not-numeric-index.js
+++ b/test/built-ins/TypedArrays/internals/Set/detached-buffer-key-is-not-numeric-index.js
@@ -17,8 +17,8 @@ includes: [testTypedArray.js, detachArrayBuffer.js]
 features: [Reflect, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43]));
   $DETACHBUFFER(sample.buffer);
 
   assert.sameValue(Reflect.set(sample, "foo", "test262"), true);
diff --git a/test/built-ins/TypedArrays/internals/Set/detached-buffer-key-is-symbol.js b/test/built-ins/TypedArrays/internals/Set/detached-buffer-key-is-symbol.js
index 1fbe1b60ca..18869f683d 100644
--- a/test/built-ins/TypedArrays/internals/Set/detached-buffer-key-is-symbol.js
+++ b/test/built-ins/TypedArrays/internals/Set/detached-buffer-key-is-symbol.js
@@ -17,8 +17,8 @@ features: [Symbol, Reflect, TypedArray]
 
 var s = Symbol("1");
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43]));
   $DETACHBUFFER(sample.buffer);
 
   assert.sameValue(Reflect.set(sample, s, "test262"), true);
diff --git a/test/built-ins/TypedArrays/internals/Set/detached-buffer.js b/test/built-ins/TypedArrays/internals/Set/detached-buffer.js
index a373f9fbe3..186259cee4 100644
--- a/test/built-ins/TypedArrays/internals/Set/detached-buffer.js
+++ b/test/built-ins/TypedArrays/internals/Set/detached-buffer.js
@@ -25,32 +25,32 @@ includes: [testTypedArray.js, detachArrayBuffer.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42]));
   $DETACHBUFFER(sample.buffer);
 
   assert.throws(TypeError, function() {
-    sample[0] = 1;
+    sample[0] = N(1);
   }, "valid numeric index");
 
   assert.throws(TypeError, function() {
-    sample["1.1"] = 1;
+    sample["1.1"] = N(1);
   }, "detach buffer runs before checking for 1.1");
 
   assert.throws(TypeError, function() {
-    sample["-0"] = 1;
+    sample["-0"] = N(1);
   }, "detach buffer runs before checking for -0");
 
   assert.throws(TypeError, function() {
-    sample["-1"] = 1;
+    sample["-1"] = N(1);
   }, "detach buffer runs before checking for -1");
 
   assert.throws(TypeError, function() {
-    sample["1"] = 1;
+    sample["1"] = N(1);
   }, "detach buffer runs before checking for key == length");
 
   assert.throws(TypeError, function() {
-    sample["2"] = 1;
+    sample["2"] = N(1);
   }, "detach buffer runs before checking for key > length");
 
   var obj = {
diff --git a/test/built-ins/TypedArrays/internals/Set/indexed-value.js b/test/built-ins/TypedArrays/internals/Set/indexed-value.js
index 2333d4c44b..bb325d11c4 100644
--- a/test/built-ins/TypedArrays/internals/Set/indexed-value.js
+++ b/test/built-ins/TypedArrays/internals/Set/indexed-value.js
@@ -32,12 +32,12 @@ var throwDesc = {
 Object.defineProperty(proto, "0", throwDesc);
 Object.defineProperty(proto, "1", throwDesc);
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42, 43]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42, 43]));
 
-  assert.sameValue(Reflect.set(sample, "0", 1), true, "sample[0]");
-  assert.sameValue(sample[0], 1, "sample[0] value is set");
+  assert.sameValue(Reflect.set(sample, "0", N(1)), true, "sample[0]");
+  assert.sameValue(sample[0], N(1), "sample[0] value is set");
 
-  assert.sameValue(Reflect.set(sample, "1", 42), true, "sample[1]");
-  assert.sameValue(sample[1], 42, "sample[1] value is set");
+  assert.sameValue(Reflect.set(sample, "1", N(42)), true, "sample[1]");
+  assert.sameValue(sample[1], N(42), "sample[1] value is set");
 });
diff --git a/test/built-ins/TypedArrays/internals/Set/key-is-minus-zero.js b/test/built-ins/TypedArrays/internals/Set/key-is-minus-zero.js
index a735e8baad..5946ebc7c3 100644
--- a/test/built-ins/TypedArrays/internals/Set/key-is-minus-zero.js
+++ b/test/built-ins/TypedArrays/internals/Set/key-is-minus-zero.js
@@ -23,8 +23,8 @@ includes: [testTypedArray.js]
 features: [Reflect, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42]));
 
   assert.sameValue(Reflect.set(sample, "-0", 1), false, "-0");
   assert.sameValue(sample.hasOwnProperty("-0"), false, "has no property [-0]");
diff --git a/test/built-ins/TypedArrays/internals/Set/key-is-not-canonical-index.js b/test/built-ins/TypedArrays/internals/Set/key-is-not-canonical-index.js
index 1fb7a9ec6b..d89a0f1fb2 100644
--- a/test/built-ins/TypedArrays/internals/Set/key-is-not-canonical-index.js
+++ b/test/built-ins/TypedArrays/internals/Set/key-is-not-canonical-index.js
@@ -24,9 +24,9 @@ var keys = [
   "0.0000001"
 ];
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   keys.forEach(function(key) {
-    var sample = new TA([42]);
+    var sample = new TA(N([42]));
 
     assert.sameValue(
       Reflect.set(sample, key, "ecma262"),
diff --git a/test/built-ins/TypedArrays/internals/Set/key-is-not-integer.js b/test/built-ins/TypedArrays/internals/Set/key-is-not-integer.js
index 252220f61d..c513faefee 100644
--- a/test/built-ins/TypedArrays/internals/Set/key-is-not-integer.js
+++ b/test/built-ins/TypedArrays/internals/Set/key-is-not-integer.js
@@ -23,8 +23,8 @@ includes: [testTypedArray.js]
 features: [Reflect, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42]));
 
   assert.sameValue(Reflect.set(sample, "1.1", 1), false, "1.1");
   assert.sameValue(Reflect.set(sample, "0.0001", 1), false, "0.0001");
diff --git a/test/built-ins/TypedArrays/internals/Set/key-is-not-numeric-index.js b/test/built-ins/TypedArrays/internals/Set/key-is-not-numeric-index.js
index 462eb752d3..03a181965e 100644
--- a/test/built-ins/TypedArrays/internals/Set/key-is-not-numeric-index.js
+++ b/test/built-ins/TypedArrays/internals/Set/key-is-not-numeric-index.js
@@ -17,8 +17,8 @@ includes: [testTypedArray.js]
 features: [Reflect, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42]));
 
   assert.sameValue(
     Reflect.set(sample, "test262", "ecma262"),
diff --git a/test/built-ins/TypedArrays/internals/Set/key-is-out-of-bounds.js b/test/built-ins/TypedArrays/internals/Set/key-is-out-of-bounds.js
index e5a5d6da85..859bdee4f9 100644
--- a/test/built-ins/TypedArrays/internals/Set/key-is-out-of-bounds.js
+++ b/test/built-ins/TypedArrays/internals/Set/key-is-out-of-bounds.js
@@ -24,8 +24,8 @@ includes: [testTypedArray.js]
 features: [Reflect, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42]));
 
   assert.sameValue(Reflect.set(sample, "-1", 1), false, "-1");
   assert.sameValue(Reflect.set(sample, "1", 1), false, "1");
diff --git a/test/built-ins/TypedArrays/internals/Set/key-is-symbol.js b/test/built-ins/TypedArrays/internals/Set/key-is-symbol.js
index 838ab74e0b..e27d501c05 100644
--- a/test/built-ins/TypedArrays/internals/Set/key-is-symbol.js
+++ b/test/built-ins/TypedArrays/internals/Set/key-is-symbol.js
@@ -18,8 +18,8 @@ features: [Reflect, Symbol, TypedArray]
 var s1 = Symbol("1");
 var s2 = Symbol("2");
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42]));
 
   assert.sameValue(
     Reflect.set(sample, s1, "ecma262"),
diff --git a/test/built-ins/TypedArrays/internals/Set/tonumber-value-throws.js b/test/built-ins/TypedArrays/internals/Set/tonumber-value-throws.js
index 08131f4bf3..e90eb47988 100644
--- a/test/built-ins/TypedArrays/internals/Set/tonumber-value-throws.js
+++ b/test/built-ins/TypedArrays/internals/Set/tonumber-value-throws.js
@@ -23,8 +23,8 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA([42]);
+testWithTypedArrayConstructors(function(TA, N) {
+  var sample = new TA(N([42]));
 
   var obj = {
     valueOf: function() {
diff --git a/test/built-ins/TypedArrays/length-arg-init-zeros.js b/test/built-ins/TypedArrays/length-arg-init-zeros.js
index b361317094..384e2399b4 100644
--- a/test/built-ins/TypedArrays/length-arg-init-zeros.js
+++ b/test/built-ins/TypedArrays/length-arg-init-zeros.js
@@ -40,16 +40,16 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var subject = new TA(9);
 
-  assert.sameValue(subject[0], 0, 'index 0');
-  assert.sameValue(subject[1], 0, 'index 1');
-  assert.sameValue(subject[2], 0, 'index 2');
-  assert.sameValue(subject[3], 0, 'index 3');
-  assert.sameValue(subject[4], 0, 'index 4');
-  assert.sameValue(subject[5], 0, 'index 5');
-  assert.sameValue(subject[6], 0, 'index 6');
-  assert.sameValue(subject[7], 0, 'index 7');
-  assert.sameValue(subject[8], 0, 'index 8');
+  assert.sameValue(subject[0], N(0), 'index 0');
+  assert.sameValue(subject[1], N(0), 'index 1');
+  assert.sameValue(subject[2], N(0), 'index 2');
+  assert.sameValue(subject[3], N(0), 'index 3');
+  assert.sameValue(subject[4], N(0), 'index 4');
+  assert.sameValue(subject[5], N(0), 'index 5');
+  assert.sameValue(subject[6], N(0), 'index 6');
+  assert.sameValue(subject[7], N(0), 'index 7');
+  assert.sameValue(subject[8], N(0), 'index 8');
 });
diff --git a/test/built-ins/TypedArrays/length-arg-proto-from-ctor-realm.js b/test/built-ins/TypedArrays/length-arg-proto-from-ctor-realm.js
index 77cef26162..f4effc2081 100644
--- a/test/built-ins/TypedArrays/length-arg-proto-from-ctor-realm.js
+++ b/test/built-ins/TypedArrays/length-arg-proto-from-ctor-realm.js
@@ -29,7 +29,7 @@ var other = $262.createRealm().global;
 var C = new other.Function();
 C.prototype = null;
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var ta = Reflect.construct(TA, [0], C);
 
   assert.sameValue(Object.getPrototypeOf(ta), other[TA.name].prototype);
diff --git a/test/built-ins/TypedArrays/object-arg-as-array-returns.js b/test/built-ins/TypedArrays/object-arg-as-array-returns.js
index a5e3c3bbc8..6e15b4ea4c 100644
--- a/test/built-ins/TypedArrays/object-arg-as-array-returns.js
+++ b/test/built-ins/TypedArrays/object-arg-as-array-returns.js
@@ -18,11 +18,11 @@ features: [TypedArray]
 
 var obj = [7, 42];
 
-testWithTypedArrayConstructors(function(TA) {
-  var typedArray = new TA(obj);
+testWithTypedArrayConstructors(function(TA, N) {
+  var typedArray = new TA(N(obj));
   assert.sameValue(typedArray.length, 2);
-  assert.sameValue(typedArray[0], 7);
-  assert.sameValue(typedArray[1], 42);
+  assert.sameValue(typedArray[0], N(7));
+  assert.sameValue(typedArray[1], N(42));
   assert.sameValue(typedArray.constructor, TA);
   assert.sameValue(Object.getPrototypeOf(typedArray), TA.prototype);
 });
diff --git a/test/built-ins/TypedArrays/object-arg-as-generator-iterable-returns.js b/test/built-ins/TypedArrays/object-arg-as-generator-iterable-returns.js
index f9af0defe7..7e28762942 100644
--- a/test/built-ins/TypedArrays/object-arg-as-generator-iterable-returns.js
+++ b/test/built-ins/TypedArrays/object-arg-as-generator-iterable-returns.js
@@ -16,15 +16,15 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var obj = (function *() {
-    yield 7; yield 42;
+    yield N(7); yield N(42);
   })();
 
   var typedArray = new TA(obj);
   assert.sameValue(typedArray.length, 2);
-  assert.sameValue(typedArray[0], 7);
-  assert.sameValue(typedArray[1], 42);
+  assert.sameValue(typedArray[0], N(7));
+  assert.sameValue(typedArray[1], N(42));
   assert.sameValue(typedArray.constructor, TA);
   assert.sameValue(Object.getPrototypeOf(typedArray), TA.prototype);
 });
diff --git a/test/built-ins/TypedArrays/object-arg-new-instance-extensibility.js b/test/built-ins/TypedArrays/object-arg-new-instance-extensibility.js
index 86a2ac837b..bd335774b4 100644
--- a/test/built-ins/TypedArrays/object-arg-new-instance-extensibility.js
+++ b/test/built-ins/TypedArrays/object-arg-new-instance-extensibility.js
@@ -29,14 +29,14 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-var obj = {
-  "0": 0,
-  "1": 1,
-  "2": 2,
-  length: 3
-};
-
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
+  var obj = {
+    "0": N(0),
+    "1": N(1),
+    "2": N(2),
+    length: 3
+  };
+
   var sample = new TA(obj);
 
   assert(Object.isExtensible(sample));
diff --git a/test/built-ins/TypedArrays/object-arg-returns.js b/test/built-ins/TypedArrays/object-arg-returns.js
index 57eec9720c..cb06ba2207 100644
--- a/test/built-ins/TypedArrays/object-arg-returns.js
+++ b/test/built-ins/TypedArrays/object-arg-returns.js
@@ -42,4 +42,6 @@ testWithTypedArrayConstructors(function(TA) {
     assert.sameValue(typedArray[1], 0);
     assert.sameValue(typedArray[4], 0);
   }
-});
+},
+  // Cannot create Big*64Arrays from non-safe integers.
+  numericTypedArrayConstructors);
diff --git a/test/built-ins/TypedArrays/object-arg-throws-from-property.js b/test/built-ins/TypedArrays/object-arg-throws-from-property.js
index f9d384b5cf..4a0d60825f 100644
--- a/test/built-ins/TypedArrays/object-arg-throws-from-property.js
+++ b/test/built-ins/TypedArrays/object-arg-throws-from-property.js
@@ -31,7 +31,9 @@ Object.defineProperty(obj, "2", {
   }
 });
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
+  obj[0] = N(0);
+  obj[1] = N(0);
   assert.throws(Test262Error, function() {
     new TA(obj);
   });
diff --git a/test/built-ins/TypedArrays/object-arg-throws-setting-obj-to-primitive-typeerror.js b/test/built-ins/TypedArrays/object-arg-throws-setting-obj-to-primitive-typeerror.js
index 215bf75fc0..3aee05e566 100644
--- a/test/built-ins/TypedArrays/object-arg-throws-setting-obj-to-primitive-typeerror.js
+++ b/test/built-ins/TypedArrays/object-arg-throws-setting-obj-to-primitive-typeerror.js
@@ -54,7 +54,7 @@ includes: [testTypedArray.js]
 features: [Symbol.toPrimitive, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample = new Int8Array(1);
   var toPrimitive = 0;
   var valueOf = 0;
@@ -69,7 +69,7 @@ testWithTypedArrayConstructors(function(TA) {
   };
 
   assert.throws(TypeError, function() {
-    new TA([8, sample]);
+    new TA([N(8), sample]);
   }, "abrupt completion from sample @@toPrimitive");
 
   assert.sameValue(toPrimitive, 1, "toPrimitive was called once");
diff --git a/test/built-ins/TypedArrays/object-arg-throws-setting-obj-to-primitive.js b/test/built-ins/TypedArrays/object-arg-throws-setting-obj-to-primitive.js
index 7a7170b6f1..516586863e 100644
--- a/test/built-ins/TypedArrays/object-arg-throws-setting-obj-to-primitive.js
+++ b/test/built-ins/TypedArrays/object-arg-throws-setting-obj-to-primitive.js
@@ -52,7 +52,7 @@ includes: [testTypedArray.js]
 features: [Symbol.toPrimitive, TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample = new Int8Array(1);
   var toPrimitive = 0;
   var valueOf = 0;
@@ -67,7 +67,7 @@ testWithTypedArrayConstructors(function(TA) {
   };
 
   assert.throws(Test262Error, function() {
-    new TA([8, sample]);
+    new TA([N(8), sample]);
   }, "abrupt completion from sample @@toPrimitive");
 
   assert.sameValue(toPrimitive, 1, "toPrimitive was called once");
diff --git a/test/built-ins/TypedArrays/object-arg-throws-setting-obj-tostring.js b/test/built-ins/TypedArrays/object-arg-throws-setting-obj-tostring.js
index 482e115957..3e2d84e75b 100644
--- a/test/built-ins/TypedArrays/object-arg-throws-setting-obj-tostring.js
+++ b/test/built-ins/TypedArrays/object-arg-throws-setting-obj-tostring.js
@@ -64,7 +64,7 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample = new Int8Array(1);
   var valueOf = 0;
   var toString = 0;
@@ -80,7 +80,7 @@ testWithTypedArrayConstructors(function(TA) {
   };
 
   assert.throws(Test262Error, function() {
-    new TA([8, sample]);
+    new TA([N(8), sample]);
   }, "abrupt completion from ToNumber(sample)");
 
   assert.sameValue(valueOf, 1, "valueOf called once");
diff --git a/test/built-ins/TypedArrays/object-arg-throws-setting-obj-valueof-typeerror.js b/test/built-ins/TypedArrays/object-arg-throws-setting-obj-valueof-typeerror.js
index 767dd21825..c58fe24252 100644
--- a/test/built-ins/TypedArrays/object-arg-throws-setting-obj-valueof-typeerror.js
+++ b/test/built-ins/TypedArrays/object-arg-throws-setting-obj-valueof-typeerror.js
@@ -65,7 +65,7 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample = new Int8Array(1);
   var valueOf = 0;
   var toString = 0;
@@ -81,7 +81,7 @@ testWithTypedArrayConstructors(function(TA) {
   };
 
   assert.throws(TypeError, function() {
-    new TA([8, sample]);
+    new TA([N(8), sample]);
   }, "abrupt completion from ToNumber(sample)");
 
   assert.sameValue(valueOf, 1, "valueOf called once");
diff --git a/test/built-ins/TypedArrays/object-arg-throws-setting-obj-valueof.js b/test/built-ins/TypedArrays/object-arg-throws-setting-obj-valueof.js
index f9baf7758f..ae4515f349 100644
--- a/test/built-ins/TypedArrays/object-arg-throws-setting-obj-valueof.js
+++ b/test/built-ins/TypedArrays/object-arg-throws-setting-obj-valueof.js
@@ -65,7 +65,7 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var sample = new Int8Array(1);
   var valueOf = 0;
 
@@ -75,7 +75,7 @@ testWithTypedArrayConstructors(function(TA) {
   };
 
   assert.throws(Test262Error, function() {
-    new TA([8, sample]);
+    new TA([N(8), sample]);
   }, "abrupt completion from ToNumber(sample)");
 
   assert.sameValue(valueOf, 1, "valueOf called once");
diff --git a/test/built-ins/TypedArrays/object-arg-throws-setting-property.js b/test/built-ins/TypedArrays/object-arg-throws-setting-property.js
index 93f85dc982..489234c901 100644
--- a/test/built-ins/TypedArrays/object-arg-throws-setting-property.js
+++ b/test/built-ins/TypedArrays/object-arg-throws-setting-property.js
@@ -31,7 +31,9 @@ var obj = {
   length: 4
 };
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
+  obj[0] = N(0);
+  obj[1] = N(0);
   assert.throws(Test262Error, function() {
     new TA(obj);
   });
diff --git a/test/built-ins/TypedArrays/of/argument-number-value-throws.js b/test/built-ins/TypedArrays/of/argument-number-value-throws.js
index bda57f8cd4..3d8a49dedd 100644
--- a/test/built-ins/TypedArrays/of/argument-number-value-throws.js
+++ b/test/built-ins/TypedArrays/of/argument-number-value-throws.js
@@ -16,23 +16,21 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-var lastValue;
+testWithTypedArrayConstructors(function(TA, N) {
+  var lastValue = false;
 
-var obj1 = {
-  valueOf() {
-    lastValue = "obj1";
-    return 42;
-  }
-};
-var obj2 = {
-  valueOf() {
-    lastValue = "obj2";
-    throw new Test262Error();
-  }
-};
-
-testWithTypedArrayConstructors(function(TA) {
-  lastValue = false;
+  var obj1 = {
+    valueOf() {
+      lastValue = "obj1";
+      return N(42);
+    }
+  };
+  var obj2 = {
+    valueOf() {
+      lastValue = "obj2";
+      throw new Test262Error();
+    }
+  };
 
   assert.throws(Test262Error, function() {
     TA.of(obj1, obj2, obj1);
diff --git a/test/built-ins/TypedArrays/of/custom-ctor-returns-other-instance.js b/test/built-ins/TypedArrays/of/custom-ctor-returns-other-instance.js
index e116b1db7e..6417c73d5e 100644
--- a/test/built-ins/TypedArrays/of/custom-ctor-returns-other-instance.js
+++ b/test/built-ins/TypedArrays/of/custom-ctor-returns-other-instance.js
@@ -18,16 +18,16 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var result;
   var custom = new TA(3);
   var ctor = function() {
     return custom;
   };
 
-  result = TypedArray.of.call(ctor, 1, 2, 3);
+  result = TypedArray.of.call(ctor, N(1), N(2), N(3));
   assert.sameValue(result, custom, "using iterator, same length");
 
-  result = TypedArray.of.call(ctor, 1, 2);
+  result = TypedArray.of.call(ctor, N(1), N(2));
   assert.sameValue(result, custom, "using iterator, higher length");
 });
diff --git a/test/built-ins/TypedArrays/of/new-instance-using-custom-ctor.js b/test/built-ins/TypedArrays/of/new-instance-using-custom-ctor.js
index 7cc95230eb..fbcc55b27e 100644
--- a/test/built-ins/TypedArrays/of/new-instance-using-custom-ctor.js
+++ b/test/built-ins/TypedArrays/of/new-instance-using-custom-ctor.js
@@ -8,7 +8,7 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
+testWithTypedArrayConstructors(function(TA, N) {
   var called = 0;
 
   var ctor = function(len) {
@@ -18,11 +18,11 @@ testWithTypedArrayConstructors(function(TA) {
   };
 
 
-  var result = TA.of.call(ctor, 42, 43, 42);
+  var result = TA.of.call(ctor, N(42), N(43), N(42));
   assert.sameValue(result.length, 3);
-  assert.sameValue(result[0], 42);
-  assert.sameValue(result[1], 43);
-  assert.sameValue(result[2], 42);
+  assert.sameValue(result[0], N(42));
+  assert.sameValue(result[1], N(43));
+  assert.sameValue(result[2], N(42));
   assert.sameValue(result.constructor, TA);
   assert.sameValue(called, 1);
 });
diff --git a/test/built-ins/TypedArrays/of/new-instance.js b/test/built-ins/TypedArrays/of/new-instance.js
index e83ad648d9..a0fbe0150e 100644
--- a/test/built-ins/TypedArrays/of/new-instance.js
+++ b/test/built-ins/TypedArrays/of/new-instance.js
@@ -23,12 +23,12 @@ includes: [testTypedArray.js]
 features: [TypedArray]
 ---*/
 
-testWithTypedArrayConstructors(function(TA) {
-  var result = TA.of(42, 43, null);
+testWithTypedArrayConstructors(function(TA, N) {
+  var result = TA.of(N(42), N(43), N(false));
   assert.sameValue(result.length, 3);
-  assert.sameValue(result[0], 42);
-  assert.sameValue(result[1], 43);
-  assert.sameValue(result[2], 0);
+  assert.sameValue(result[0], N(42));
+  assert.sameValue(result[1], N(43));
+  assert.sameValue(result[2], N(0));
   assert.sameValue(result.constructor, TA);
   assert.sameValue(Object.getPrototypeOf(result), TA.prototype);
 });
diff --git a/test/built-ins/TypedArrays/typedarray-arg-other-ctor-returns-new-typedarray.js b/test/built-ins/TypedArrays/typedarray-arg-other-ctor-returns-new-typedarray.js
index 411248ffd4..34cb4dee68 100644
--- a/test/built-ins/TypedArrays/typedarray-arg-other-ctor-returns-new-typedarray.js
+++ b/test/built-ins/TypedArrays/typedarray-arg-other-ctor-returns-new-typedarray.js
@@ -16,9 +16,13 @@ features: [TypedArray]
 
 var sample1 = new Int8Array(7);
 var sample2 = new Int16Array(7);
+var sample3 = new BigInt64Array(7);
+var sample4 = new BigUint64Array(7);
 
 testWithTypedArrayConstructors(function(TA) {
-  var sample = TA === Int8Array ? sample2 : sample1;
+  var sample = TA === Int8Array ? sample2 :
+               TA === BigInt64Array ? sample4 :
+               TA === BigUint64Array ? sample3 : sample1;
   var typedArray = new TA(sample);
 
   assert.sameValue(typedArray.length, 7);
diff --git a/test/built-ins/TypedArrays/typedarray-arg-returns-new-instance.js b/test/built-ins/TypedArrays/typedarray-arg-returns-new-instance.js
index 357730df55..128ec40217 100644
--- a/test/built-ins/TypedArrays/typedarray-arg-returns-new-instance.js
+++ b/test/built-ins/TypedArrays/typedarray-arg-returns-new-instance.js
@@ -28,4 +28,4 @@ testWithTypedArrayConstructors(function(TA) {
   assert.sameValue(typedArray.length, len);
   assert.sameValue(typedArray.constructor, TA);
   assert.sameValue(Object.getPrototypeOf(typedArray), TA.prototype);
-});
+}, numericTypedArrayConstructors);
diff --git a/test/built-ins/TypedArrays/typedarray-arg-use-custom-proto-if-object.js b/test/built-ins/TypedArrays/typedarray-arg-use-custom-proto-if-object.js
index 8af612edcb..2745fc5e25 100644
--- a/test/built-ins/TypedArrays/typedarray-arg-use-custom-proto-if-object.js
+++ b/test/built-ins/TypedArrays/typedarray-arg-use-custom-proto-if-object.js
@@ -45,4 +45,4 @@ testWithTypedArrayConstructors(function(TA) {
 
   assert.sameValue(ta.constructor, Object);
   assert.sameValue(Object.getPrototypeOf(ta), proto);
-});
+}, numericTypedArrayConstructors);
diff --git a/test/built-ins/TypedArrays/typedarray-arg-use-default-proto-if-custom-proto-is-not-object.js b/test/built-ins/TypedArrays/typedarray-arg-use-default-proto-if-custom-proto-is-not-object.js
index b31bd96e4d..ec1997e91a 100644
--- a/test/built-ins/TypedArrays/typedarray-arg-use-default-proto-if-custom-proto-is-not-object.js
+++ b/test/built-ins/TypedArrays/typedarray-arg-use-default-proto-if-custom-proto-is-not-object.js
@@ -44,4 +44,4 @@ testWithTypedArrayConstructors(function(TA) {
 
   assert.sameValue(ta.constructor, TA);
   assert.sameValue(Object.getPrototypeOf(ta), TA.prototype);
-});
+}, numericTypedArrayConstructors);
diff --git a/test/harness/testTypedArray.js b/test/harness/testTypedArray.js
index 066de8eb8c..bb00168573 100644
--- a/test/harness/testTypedArray.js
+++ b/test/harness/testTypedArray.js
@@ -24,6 +24,12 @@ var TAConstructors = [
   Uint8Array,
   Uint8ClampedArray
 ];
+
+if (typeof BigInt !== "undefined") {
+  TAConstructors.push(BigInt64Array);
+  TAConstructors.push(BigUint64Array);
+}
+
 var length = TAConstructors.length;
 
 assert(
-- 
GitLab