]> git.saurik.com Git - apple/javascriptcore.git/blobdiff - tests/stress/iterator-names.js
JavaScriptCore-7601.1.46.3.tar.gz
[apple/javascriptcore.git] / tests / stress / iterator-names.js
diff --git a/tests/stress/iterator-names.js b/tests/stress/iterator-names.js
new file mode 100644 (file)
index 0000000..5fe8ab4
--- /dev/null
@@ -0,0 +1,35 @@
+function test(object, name) {
+    return {
+        object,
+        name: '[object ' + name + ']'
+    };
+}
+
+function iter(object) {
+    return object[Symbol.iterator]();
+}
+
+var tests = [
+    test(iter([]), "Array Iterator"),
+    test(iter(new Array), "Array Iterator"),
+    test([].keys(), "Array Iterator"),
+    test([].entries(), "Array Iterator"),
+    test(iter(new Map), "Map Iterator"),
+    test((new Map()).keys(), "Map Iterator"),
+    test((new Map()).entries(), "Map Iterator"),
+    test(iter(new Set), "Set Iterator"),
+    test((new Set()).keys(), "Set Iterator"),
+    test((new Set()).entries(), "Set Iterator"),
+    test(iter(new String("")), "String Iterator"),
+    test(iter(""), "String Iterator"),
+];
+
+function check(actual, expected) {
+    if (actual !== expected)
+        throw new Error('bad value: ' + actual);
+}
+
+for (var { object, name } of tests) {
+    check(object.toString(), name);
+    check(Object.prototype.toString.call(object), name);
+}