summaryrefslogtreecommitdiff
path: root/test/built-ins/TypedArray
diff options
context:
space:
mode:
authorJordan Harband <ljharb@gmail.com>2017-06-12 15:21:33 -0700
committerLeo Balter <leonardo.balter@gmail.com>2017-06-12 19:21:33 -0300
commitf1c1b33b5357c59f4dfe0c8a4b72b9f0bc1b5126 (patch)
treef9c6a2d4b106f4d04ac8167b02f8e6bdef72186f /test/built-ins/TypedArray
parent66bd632bae7e8c1ae55d4f1239d08143224e4a17 (diff)
downloadqtdeclarative-testsuites-f1c1b33b5357c59f4dfe0c8a4b72b9f0bc1b5126.tar.gz
Array.prototype.sort and %TypedArray%.prototype.sort should throw on a non-undefined non-function (#1059)
Per https://github.com/tc39/ecma262/pull/785/
Diffstat (limited to 'test/built-ins/TypedArray')
-rw-r--r--test/built-ins/TypedArray/prototype/sort/comparefn-nonfunction-call-throws.js54
1 files changed, 54 insertions, 0 deletions
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
new file mode 100644
index 000000000..e0fcc633c
--- /dev/null
+++ b/test/built-ins/TypedArray/prototype/sort/comparefn-nonfunction-call-throws.js
@@ -0,0 +1,54 @@
+// Copyright (C) 2017 Jordan Harband. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-%typedarray%.prototype.sort
+description: throws on a non-undefined non-function
+info: >
+ 22.2.3.26 %TypedArray%.prototype.sort ( comparefn )
+
+ Upon entry, the following steps are performed to initialize evaluation
+ of the sort function. These steps are used instead of the entry steps
+ in 22.1.3.25:
+
+ ...
+ 1. If _comparefn_ is not *undefined* and IsCallable(_comparefn_) is *false*, throw a *TypeError* exception.
+ ...
+
+includes: [testTypedArray.js]
+---*/
+
+testWithTypedArrayConstructors(function(TA) {
+ var sample = new TA([42, 43, 44, 45, 46]);
+
+ assert.throws(TypeError, function() {
+ sample.sort(null);
+ });
+
+ assert.throws(TypeError, function() {
+ sample.sort(true);
+ });
+
+ assert.throws(TypeError, function() {
+ sample.sort(false);
+ });
+
+ assert.throws(TypeError, function() {
+ sample.sort('');
+ });
+
+ assert.throws(TypeError, function() {
+ sample.sort(/a/g);
+ });
+
+ assert.throws(TypeError, function() {
+ sample.sort(42);
+ });
+
+ assert.throws(TypeError, function() {
+ sample.sort([]);
+ });
+
+ assert.throws(TypeError, function() {
+ sample.sort({});
+ });
+});