summaryrefslogtreecommitdiffstats
path: root/js/src/tests/js1_7/extensions/iterator-ctor.js
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /js/src/tests/js1_7/extensions/iterator-ctor.js
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloadUXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip
Add m-esr52 at 52.6.0
Diffstat (limited to 'js/src/tests/js1_7/extensions/iterator-ctor.js')
-rw-r--r--js/src/tests/js1_7/extensions/iterator-ctor.js102
1 files changed, 102 insertions, 0 deletions
diff --git a/js/src/tests/js1_7/extensions/iterator-ctor.js b/js/src/tests/js1_7/extensions/iterator-ctor.js
new file mode 100644
index 000000000..92d3347cf
--- /dev/null
+++ b/js/src/tests/js1_7/extensions/iterator-ctor.js
@@ -0,0 +1,102 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+// See http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Guide:Iterators_and_Generators
+
+//-----------------------------------------------------------------------------
+var BUGNUMBER = "410725";
+var summary = "Test of the global Iterator constructor";
+var actual, expect;
+
+printBugNumber(BUGNUMBER);
+printStatus(summary);
+
+/**************
+ * BEGIN TEST *
+ **************/
+
+function iteratorToArray(iterator) {
+ var result = [];
+ for (var i in iterator) {
+ result[result.length] = i;
+ }
+ return result.sort();
+}
+
+var obj = {a:1, b:2};
+
+reportCompare('["a", "b"]',
+ uneval(iteratorToArray(obj)),
+ 'uneval(iteratorToArray(obj))');
+
+reportCompare('[["a", 1], ["b", 2]]',
+ uneval(iteratorToArray(Iterator(obj))),
+ 'uneval(iteratorToArray(Iterator(obj)))');
+
+reportCompare('[["a", 1], ["b", 2]]',
+ uneval(iteratorToArray(new Iterator(obj))),
+ 'uneval(iteratorToArray(new Iterator(obj)))');
+
+reportCompare('[["a", 1], ["b", 2]]',
+ uneval(iteratorToArray(Iterator(obj,false))),
+ 'uneval(iteratorToArray(Iterator(obj,false)))');
+
+reportCompare('[["a", 1], ["b", 2]]',
+ uneval(iteratorToArray(new Iterator(obj,false))),
+ 'uneval(iteratorToArray(new Iterator(obj,false)))');
+
+reportCompare('["a", "b"]',
+ uneval(iteratorToArray(Iterator(obj,true))),
+ 'uneval(iteratorToArray(Iterator(obj,true)))');
+
+reportCompare('["a", "b"]',
+ uneval(iteratorToArray(new Iterator(obj,true))),
+ 'uneval(iteratorToArray(new Iterator(obj,true)))');
+
+var flag;
+var obji = {a:1, b:2};
+obji.__iterator__ = function (b) { flag = b; yield -1; yield -2; }
+
+flag = -1;
+reportCompare('[-1, -2]',
+ uneval(iteratorToArray(obji)),
+ 'uneval(iteratorToArray(obji))');
+reportCompare(true, flag, 'uneval(iteratorToArray(obji)) flag');
+
+flag = -1;
+reportCompare('[-1, -2]',
+ uneval(iteratorToArray(Iterator(obji))),
+ 'uneval(iteratorToArray(Iterator(obji)))');
+reportCompare(false, flag, 'uneval(iteratorToArray(Iterator(obji))) flag');
+
+flag = -1;
+reportCompare('[-1, -2]',
+ uneval(iteratorToArray(new Iterator(obji))),
+ 'uneval(iteratorToArray(new Iterator(obji)))');
+reportCompare(false, flag, 'uneval(iteratorToArray(new Iterator(obji))) flag');
+
+flag = -1;
+reportCompare('[-1, -2]',
+ uneval(iteratorToArray(Iterator(obji,false))),
+ 'uneval(iteratorToArray(Iterator(obji,false)))');
+reportCompare(false, flag, 'uneval(iteratorToArray(Iterator(obji,false))) flag');
+
+flag = -1;
+reportCompare('[-1, -2]',
+ uneval(iteratorToArray(new Iterator(obji,false))),
+ 'uneval(iteratorToArray(new Iterator(obji,false)))');
+reportCompare(false, flag, 'uneval(iteratorToArray(new Iterator(obji,false))) flag');
+
+flag = -1;
+reportCompare('[-1, -2]',
+ uneval(iteratorToArray(Iterator(obji,true))),
+ 'uneval(iteratorToArray(Iterator(obji,true)))');
+reportCompare(true, flag, 'uneval(iteratorToArray(Iterator(obji,true))) flag');
+
+flag = -1;
+reportCompare('[-1, -2]',
+ uneval(iteratorToArray(new Iterator(obji,true))),
+ 'uneval(iteratorToArray(new Iterator(obji,true)))');
+reportCompare(true, flag, 'uneval(iteratorToArray(new Iterator(obji,true))) flag');