summaryrefslogtreecommitdiff
path: root/test/built-ins/TypedArrays/from/BigInt/mapfn-is-not-callable.js
diff options
context:
space:
mode:
authorLeo Balter <leonardo.balter@gmail.com>2018-02-09 13:39:06 -0500
committerLeo Balter <leonardo.balter@gmail.com>2018-02-15 16:45:06 -0500
commitc1bc43b1b10ec9d7c83ebee2af1837b78b784e52 (patch)
tree88aa3d799434cef567d2b1a8682b4fd6990c23d3 /test/built-ins/TypedArrays/from/BigInt/mapfn-is-not-callable.js
parent5722ac494b89135cdcc406ec9ca3362920129346 (diff)
downloadqtdeclarative-testsuites-c1bc43b1b10ec9d7c83ebee2af1837b78b784e52.tar.gz
Restore original tests for TypedArrays and optimize files
- optimize file names - BigInt folder for TAs.from and of - copy tests preparing for bigint - copy ta prototype methods for bigint - Use an exclusive harness for bigint typedarrays - add features - use proper harness - use preper harness - Restore original tests for TypedArrays - final fixes - fix includes
Diffstat (limited to 'test/built-ins/TypedArrays/from/BigInt/mapfn-is-not-callable.js')
-rw-r--r--test/built-ins/TypedArrays/from/BigInt/mapfn-is-not-callable.js59
1 files changed, 59 insertions, 0 deletions
diff --git a/test/built-ins/TypedArrays/from/BigInt/mapfn-is-not-callable.js b/test/built-ins/TypedArrays/from/BigInt/mapfn-is-not-callable.js
new file mode 100644
index 000000000..36565b495
--- /dev/null
+++ b/test/built-ins/TypedArrays/from/BigInt/mapfn-is-not-callable.js
@@ -0,0 +1,59 @@
+// Copyright (C) 2016 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-%typedarray%.from
+description: Throw a TypeError exception is mapfn is not callable
+info: |
+ 22.2.2.1 %TypedArray%.from ( source [ , mapfn [ , thisArg ] ] )
+
+ ...
+ 3. If mapfn was supplied and mapfn is not undefined, then
+ a. If IsCallable(mapfn) is false, throw a TypeError exception.
+ ...
+includes: [testBigIntTypedArray.js]
+features: [BigInt, Symbol, Symbol.iterator, TypedArray]
+---*/
+
+var getIterator = 0;
+var arrayLike = {};
+Object.defineProperty(arrayLike, Symbol.iterator, {
+ get: function() {
+ getIterator++;
+ }
+});
+
+testWithBigIntTypedArrayConstructors(function(TA) {
+ assert.throws(TypeError, function() {
+ TA.from(arrayLike, null);
+ }, "mapfn is null");
+
+ assert.throws(TypeError, function() {
+ TA.from(arrayLike, 42);
+ }, "mapfn is a number");
+
+ assert.throws(TypeError, function() {
+ TA.from(arrayLike, "");
+ }, "mapfn is a string");
+
+ assert.throws(TypeError, function() {
+ TA.from(arrayLike, {});
+ }, "mapfn is an ordinary object");
+
+ assert.throws(TypeError, function() {
+ TA.from(arrayLike, []);
+ }, "mapfn is an array");
+
+ assert.throws(TypeError, function() {
+ TA.from(arrayLike, true);
+ }, "mapfn is a boolean");
+
+ var s = Symbol("1");
+ assert.throws(TypeError, function() {
+ TA.from(arrayLike, s);
+ }, "mapfn is a symbol");
+
+ assert.sameValue(
+ getIterator, 0,
+ "IsCallable(mapfn) check occurs before getting source[@@iterator]"
+ );
+});