Add regression tests for TypedArray.prototype functions' error messages.
authorkeith_miller@apple.com <keith_miller@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 19 Oct 2015 18:32:30 +0000 (18:32 +0000)
committerkeith_miller@apple.com <keith_miller@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 19 Oct 2015 18:32:30 +0000 (18:32 +0000)
https://bugs.webkit.org/show_bug.cgi?id=150288

Reviewed by Darin Adler.

Fix a typo in the text passed by TypedArrray.prototype.filter type error message.
Add tests that check the actual error message text for all the TypeArray.prototype
functions that throw.

* builtins/TypedArray.prototype.js:
(filter):
* tests/stress/typedarray-every.js:
* tests/stress/typedarray-filter.js:
* tests/stress/typedarray-find.js:
* tests/stress/typedarray-findIndex.js:
* tests/stress/typedarray-forEach.js:
* tests/stress/typedarray-map.js:
* tests/stress/typedarray-reduce.js:
* tests/stress/typedarray-reduceRight.js:
* tests/stress/typedarray-some.js:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@191300 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/builtins/TypedArray.prototype.js
Source/JavaScriptCore/tests/stress/typedarray-every.js
Source/JavaScriptCore/tests/stress/typedarray-filter.js
Source/JavaScriptCore/tests/stress/typedarray-find.js
Source/JavaScriptCore/tests/stress/typedarray-findIndex.js
Source/JavaScriptCore/tests/stress/typedarray-forEach.js
Source/JavaScriptCore/tests/stress/typedarray-map.js
Source/JavaScriptCore/tests/stress/typedarray-reduce.js
Source/JavaScriptCore/tests/stress/typedarray-reduceRight.js
Source/JavaScriptCore/tests/stress/typedarray-some.js

index c80b14c..fbbf852 100644 (file)
@@ -1,3 +1,26 @@
+2015-10-17  Keith Miller  <keith_miller@apple.com>
+
+        Add regression tests for TypedArray.prototype functions' error messages.
+        https://bugs.webkit.org/show_bug.cgi?id=150288
+
+        Reviewed by Darin Adler.
+
+        Fix a typo in the text passed by TypedArrray.prototype.filter type error message.
+        Add tests that check the actual error message text for all the TypeArray.prototype
+        functions that throw.
+
+        * builtins/TypedArray.prototype.js:
+        (filter):
+        * tests/stress/typedarray-every.js:
+        * tests/stress/typedarray-filter.js:
+        * tests/stress/typedarray-find.js:
+        * tests/stress/typedarray-findIndex.js:
+        * tests/stress/typedarray-forEach.js:
+        * tests/stress/typedarray-map.js:
+        * tests/stress/typedarray-reduce.js:
+        * tests/stress/typedarray-reduceRight.js:
+        * tests/stress/typedarray-some.js:
+
 2015-10-19  Tim Horton  <timothy_horton@apple.com>
 
         Add magnify and rotate gesture event support for Mac
index 9aeb0b5..6296ecf 100644 (file)
@@ -249,7 +249,7 @@ function filter(callback /*, thisArg */)
     var length = @typedArrayLength(this);
 
     if (typeof callback !== "function")
-        throw new @TypeError("Array.prototype.filter callback must be a function");
+        throw new @TypeError("TypedArray.prototype.filter callback must be a function");
 
     var thisArg = arguments.length > 1 ? arguments[1] : undefined;
 
index 27bf58d..c4e979c 100644 (file)
@@ -46,11 +46,11 @@ shouldThrow("testPrototypeFunction('every', '(isBigEnoughAndException)', [12, 15
 debug("");
 
 debug("5.0 Wrong Type for Callback Test");
-shouldThrow("testPrototypeFunction('every', '(8)', [12, 15, 10, 13, 44], false)");
-shouldThrow("testPrototypeFunction('every', '(\"wrong\")', [12, 15, 10, 13, 44], false)");
-shouldThrow("testPrototypeFunction('every', '(new Object())', [12, 15, 10, 13, 44], false)");
-shouldThrow("testPrototypeFunction('every', '(null)', [12, 15, 10, 13, 44], false)");
-shouldThrow("testPrototypeFunction('every', '()', [12, 15, 10, 13, 44], false)");
+shouldThrow("testPrototypeFunction('every', '(8)', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.every callback must be a function'");
+shouldThrow("testPrototypeFunction('every', '(\"wrong\")', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.every callback must be a function'");
+shouldThrow("testPrototypeFunction('every', '(new Object())', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.every callback must be a function'");
+shouldThrow("testPrototypeFunction('every', '(null)', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.every callback must be a function'");
+shouldThrow("testPrototypeFunction('every', '()', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.every callback must be a function'");
 debug("");
 
 finishJSTest();
index da9eda9..60e5248 100644 (file)
@@ -42,10 +42,10 @@ shouldThrow("testPrototypeFunction('filter', '(isBigEnoughAndException)', [12, 1
 debug("");
 
 debug("5.0 Wrong Type for Callback Test");
-shouldThrow("testPrototypeFunction('filter', '(8)', [12, 15, 10, 13, 44], false)");
-shouldThrow("testPrototypeFunction('filter', '(\"wrong\")', [12, 15, 10, 13, 44], false)");
-shouldThrow("testPrototypeFunction('filter', '(new Object())', [12, 15, 10, 13, 44], false)");
-shouldThrow("testPrototypeFunction('filter', '(null)', [12, 15, 10, 13, 44], false)");
-shouldThrow("testPrototypeFunction('filter', '()', [12, 15, 10, 13, 44], false)");
+shouldThrow("testPrototypeFunction('filter', '(8)', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.filter callback must be a function'");
+shouldThrow("testPrototypeFunction('filter', '(\"wrong\")', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.filter callback must be a function'");
+shouldThrow("testPrototypeFunction('filter', '(new Object())', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.filter callback must be a function'");
+shouldThrow("testPrototypeFunction('filter', '(null)', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.filter callback must be a function'");
+shouldThrow("testPrototypeFunction('filter', '()', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.filter callback must be a function'");
 debug("");
 finishJSTest();
index c90d2fd..b1902c4 100644 (file)
@@ -44,10 +44,10 @@ shouldThrow("testPrototypeFunction('find', '(isBigEnoughAndException)', [9, 15,
 debug("");
 
 debug("5.0 Wrong Type for Callback Test");
-shouldThrow("testPrototypeFunction('find', '(8)', [12, 15, 10, 13, 44], false)");
-shouldThrow("testPrototypeFunction('find', '(\"wrong\")', [12, 15, 10, 13, 44], false)");
-shouldThrow("testPrototypeFunction('find', '(new Object())', [12, 15, 10, 13, 44], false)");
-shouldThrow("testPrototypeFunction('find', '(null)', [12, 15, 10, 13, 44], false)");
-shouldThrow("testPrototypeFunction('find', '()', [12, 15, 10, 13, 44], false)");
+shouldThrow("testPrototypeFunction('find', '(8)', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.find callback must be a function'");
+shouldThrow("testPrototypeFunction('find', '(\"wrong\")', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.find callback must be a function'");
+shouldThrow("testPrototypeFunction('find', '(new Object())', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.find callback must be a function'");
+shouldThrow("testPrototypeFunction('find', '(null)', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.find callback must be a function'");
+shouldThrow("testPrototypeFunction('find', '()', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.find callback must be a function'");
 debug("");
 finishJSTest();
index 945d3c3..e015b7c 100644 (file)
@@ -44,10 +44,10 @@ shouldThrow("testPrototypeFunction('findIndex', '(isBigEnoughAndException)', [9,
 debug("");
 
 debug("5.0 Wrong Type for Callback Test");
-shouldThrow("testPrototypeFunction('findIndex', '(8)', [12, 15, 10, 13, 44], false)");
-shouldThrow("testPrototypeFunction('findIndex', '(\"wrong\")', [12, 15, 10, 13, 44], false)");
-shouldThrow("testPrototypeFunction('findIndex', '(new Object())', [12, 15, 10, 13, 44], false)");
-shouldThrow("testPrototypeFunction('findIndex', '(null)', [12, 15, 10, 13, 44], false)");
-shouldThrow("testPrototypeFunction('findIndex', '()', [12, 15, 10, 13, 44], false)");
+shouldThrow("testPrototypeFunction('findIndex', '(8)', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.findIndex callback must be a function'");
+shouldThrow("testPrototypeFunction('findIndex', '(\"wrong\")', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.findIndex callback must be a function'");
+shouldThrow("testPrototypeFunction('findIndex', '(new Object())', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.findIndex callback must be a function'");
+shouldThrow("testPrototypeFunction('findIndex', '(null)', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.findIndex callback must be a function'");
+shouldThrow("testPrototypeFunction('findIndex', '()', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.findIndex callback must be a function'");
 debug("");
 finishJSTest();
index e332c3f..0d69ffe 100644 (file)
@@ -82,10 +82,10 @@ shouldThrow("testPrototypeFunction('forEach', '(isBigEnoughAndException)', [9, 1
 debug("");
 
 debug("5.0 Wrong Type for Callback Test");
-shouldThrow("testPrototypeFunction('forEach', '(8)', [12, 15, 10, 13, 44], false)");
-shouldThrow("testPrototypeFunction('forEach', '(\"wrong\")', [12, 15, 10, 13, 44], false)");
-shouldThrow("testPrototypeFunction('forEach', '(new Object())', [12, 15, 10, 13, 44], false)");
-shouldThrow("testPrototypeFunction('forEach', '(null)', [12, 15, 10, 13, 44], false)");
-shouldThrow("testPrototypeFunction('forEach', '()', [12, 15, 10, 13, 44], false)");
+shouldThrow("testPrototypeFunction('forEach', '(8)', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.forEach callback must be a function'");
+shouldThrow("testPrototypeFunction('forEach', '(\"wrong\")', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.forEach callback must be a function'");
+shouldThrow("testPrototypeFunction('forEach', '(new Object())', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.forEach callback must be a function'");
+shouldThrow("testPrototypeFunction('forEach', '(null)', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.forEach callback must be a function'");
+shouldThrow("testPrototypeFunction('forEach', '()', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.forEach callback must be a function'");
 debug("");
 finishJSTest();
index bce73f5..30e127d 100644 (file)
@@ -42,10 +42,10 @@ shouldThrow("testPrototypeFunction('map', '(isBigEnoughAndException)', [12, 15,
 debug("");
 
 debug("5.0 Wrong Type for Callback Test");
-shouldThrow("testPrototypeFunction('map', '(8)', [12, 15, 10, 13, 44], false)");
-shouldThrow("testPrototypeFunction('map', '(\"wrong\")', [12, 15, 10, 13, 44], false)");
-shouldThrow("testPrototypeFunction('map', '(new Object())', [12, 15, 10, 13, 44], false)");
-shouldThrow("testPrototypeFunction('map', '(null)', [12, 15, 10, 13, 44], false)");
-shouldThrow("testPrototypeFunction('map', '()', [12, 15, 10, 13, 44], false)");
+shouldThrow("testPrototypeFunction('map', '(8)', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.map callback must be a function'");
+shouldThrow("testPrototypeFunction('map', '(\"wrong\")', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.map callback must be a function'");
+shouldThrow("testPrototypeFunction('map', '(new Object())', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.map callback must be a function'");
+shouldThrow("testPrototypeFunction('map', '(null)', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.map callback must be a function'");
+shouldThrow("testPrototypeFunction('map', '()', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.map callback must be a function'");
 debug("");
 finishJSTest();
index eee2dcb..39a6da3 100644 (file)
@@ -49,10 +49,11 @@ shouldThrow("testPrototypeFunction('reduce', '(isBigEnoughAndException)', [12, 1
 debug("");
 
 debug("5.0 Wrong Type for Callback Test");
-shouldThrow("testPrototypeFunction('reduce', '(8)', [12, 15, 10, 13, 44], false)");
-shouldThrow("testPrototypeFunction('reduce', '(\"wrong\")', [12, 15, 10, 13, 44], false)");
-shouldThrow("testPrototypeFunction('reduce', '(new Object())', [12, 15, 10, 13, 44], false)");
-shouldThrow("testPrototypeFunction('reduce', '(null)', [12, 15, 10, 13, 44], false)");
-shouldThrow("testPrototypeFunction('reduce', '()', [12, 15, 10, 13, 44], false)");
+shouldThrow("testPrototypeFunction('reduce', '(8)', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.reduce callback must be a function'");
+shouldThrow("testPrototypeFunction('reduce', '(\"wrong\")', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.reduce callback must be a function'");
+shouldThrow("testPrototypeFunction('reduce', '(new Object())', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.reduce callback must be a function'");
+shouldThrow("testPrototypeFunction('reduce', '(null)', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.reduce callback must be a function'");
+shouldThrow("testPrototypeFunction('reduce', '()', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.reduce callback must be a function'");
+shouldThrow("testPrototypeFunction('reduce', '(new Function())', [], false)", "'TypeError: TypedArray.prototype.reduce of empty array with no initial value'");
 debug("");
 finishJSTest();
index 18533ef..d5db3c7 100644 (file)
@@ -49,10 +49,11 @@ shouldThrow("testPrototypeFunction('reduceRight', '(isBigEnoughAndException)', [
 debug("");
 
 debug("5.0 Wrong Type for Callback Test");
-shouldThrow("testPrototypeFunction('reduceRight', '(8)', [12, 15, 10, 13, 44], false)");
-shouldThrow("testPrototypeFunction('reduceRight', '(\"wrong\")', [12, 15, 10, 13, 44], false)");
-shouldThrow("testPrototypeFunction('reduceRight', '(new Object())', [12, 15, 10, 13, 44], false)");
-shouldThrow("testPrototypeFunction('reduceRight', '(null)', [12, 15, 10, 13, 44], false)");
-shouldThrow("testPrototypeFunction('reduceRight', '()', [12, 15, 10, 13, 44], false)");
+shouldThrow("testPrototypeFunction('reduceRight', '(8)', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.reduceRight callback must be a function'");
+shouldThrow("testPrototypeFunction('reduceRight', '(\"wrong\")', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.reduceRight callback must be a function'");
+shouldThrow("testPrototypeFunction('reduceRight', '(new Object())', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.reduceRight callback must be a function'");
+shouldThrow("testPrototypeFunction('reduceRight', '(null)', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.reduceRight callback must be a function'");
+shouldThrow("testPrototypeFunction('reduceRight', '()', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.reduceRight callback must be a function'");
+shouldThrow("testPrototypeFunction('reduceRight', '(new Function())', [], false)", "'TypeError: TypedArray.prototype.reduceRight of empty array with no initial value'");
 debug("");
 finishJSTest();
index 5bbee60..013c496 100644 (file)
@@ -47,10 +47,10 @@ shouldThrow("testPrototypeFunction('some', '(isBigEnoughAndException)', [1, 15,
 debug("");
 
 debug("5.0 Wrong Type for Callback Test");
-shouldThrow("testPrototypeFunction('some', '(8)', [12, 15, 10, 13, 44], false)");
-shouldThrow("testPrototypeFunction('some', '(\"wrong\")', [12, 15, 10, 13, 44], false)");
-shouldThrow("testPrototypeFunction('some', '(new Object())', [12, 15, 10, 13, 44], false)");
-shouldThrow("testPrototypeFunction('some', '(null)', [12, 15, 10, 13, 44], false)");
-shouldThrow("testPrototypeFunction('some', '()', [12, 15, 10, 13, 44], false)");
+shouldThrow("testPrototypeFunction('some', '(8)', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.some callback must be a function'");
+shouldThrow("testPrototypeFunction('some', '(\"wrong\")', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.some callback must be a function'");
+shouldThrow("testPrototypeFunction('some', '(new Object())', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.some callback must be a function'");
+shouldThrow("testPrototypeFunction('some', '(null)', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.some callback must be a function'");
+shouldThrow("testPrototypeFunction('some', '()', [12, 15, 10, 13, 44], false)", "'TypeError: TypedArray.prototype.some callback must be a function'");
 debug("");
 finishJSTest();