]> git.saurik.com Git - apple/javascriptcore.git/blobdiff - tests/stress/iterator-functions.js
JavaScriptCore-7601.1.46.3.tar.gz
[apple/javascriptcore.git] / tests / stress / iterator-functions.js
diff --git a/tests/stress/iterator-functions.js b/tests/stress/iterator-functions.js
new file mode 100644 (file)
index 0000000..12edb6e
--- /dev/null
@@ -0,0 +1,33 @@
+function test(actual, expected) {
+    if (actual !== expected)
+        throw new Error('bad value: ' + actual);
+}
+
+test(Array.prototype[Symbol.iterator], Array.prototype.values);
+test(Map.prototype[Symbol.iterator], Map.prototype.entries);
+test(Set.prototype[Symbol.iterator], Set.prototype.values);
+
+function argumentsTests(values) {
+    test(function () {
+        return arguments[Symbol.iterator];
+    }(), values);
+
+    test(function (a, b, c) {
+        return arguments[Symbol.iterator];
+    }(), values);
+
+    test(function () {
+        'use strict';
+        return arguments[Symbol.iterator];
+    }(), values);
+
+    test(function (a, b, c) {
+        'use strict';
+        return arguments[Symbol.iterator];
+    }(), values);
+}
+
+argumentsTests(Array.prototype.values);
+var arrayValues = Array.prototype.values;
+Array.prototype.values = null;
+argumentsTests(arrayValues);