--- a/devtools/client/webconsole/test/browser_webconsole_bug_632347_iterators_generators.js
+++ b/devtools/client/webconsole/test/browser_webconsole_bug_632347_iterators_generators.js
@@ -23,46 +23,31 @@ function consoleOpened(HUD) {
tmp.addDebuggerToGlobal(tmp);
let dbg = new tmp.Debugger();
let jsterm = HUD.jsterm;
let win = content.wrappedJSObject;
let dbgWindow = dbg.addDebuggee(content);
let container = win._container;
- // Make sure autocomplete does not walk through iterators and generators.
+ // Make sure autocomplete does not walk through generators.
let result = container.gen1.next();
let completion = JSPropertyProvider(dbgWindow, null, "_container.gen1.");
isnot(completion.matches.length, 0, "Got matches for gen1");
is(result + 1, container.gen1.next(), "gen1.next() did not execute");
result = container.gen2.next().value;
completion = JSPropertyProvider(dbgWindow, null, "_container.gen2.");
isnot(completion.matches.length, 0, "Got matches for gen2");
is((result / 2 + 1) * 2, container.gen2.next().value,
"gen2.next() did not execute");
- result = container.iter1.next();
- is(result[0], "foo", "iter1.next() [0] is correct");
- is(result[1], "bar", "iter1.next() [1] is correct");
-
- completion = JSPropertyProvider(dbgWindow, null, "_container.iter1.");
- isnot(completion.matches.length, 0, "Got matches for iter1");
-
- result = container.iter1.next();
- is(result[0], "baz", "iter1.next() [0] is correct");
- is(result[1], "baaz", "iter1.next() [1] is correct");
-
- let dbgContent = dbg.makeGlobalObjectReference(content);
- completion = JSPropertyProvider(dbgContent, null, "_container.iter2.");
- isnot(completion.matches.length, 0, "Got matches for iter2");
-
completion = JSPropertyProvider(dbgWindow, null, "window._container.");
ok(completion, "matches available for window._container");
ok(completion.matches.length, "matches available for window (length)");
dbg.removeDebuggee(content);
jsterm.clearOutput();
jsterm.execute("window._container", (msg) => {
@@ -71,14 +56,12 @@ function consoleOpened(HUD) {
EventUtils.synthesizeMouse(anchor, 2, 2, {}, HUD.iframeWindow);
});
}
function testVariablesView(aWebconsole, aEvent, aView) {
findVariableViewProperties(aView, [
{ name: "gen1", isGenerator: true },
{ name: "gen2", isGenerator: true },
- { name: "iter1", isIterator: true },
- { name: "iter2", isIterator: true },
], { webconsole: aWebconsole }).then(function () {
executeSoon(finishTest);
});
}
--- a/devtools/client/webconsole/test/test-bug-632347-iterators-generators.html
+++ b/devtools/client/webconsole/test/test-bug-632347-iterators-generators.html
@@ -1,56 +1,29 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
- <title>Web Console test for bug 632347 - iterators and generators</title>
+ <title>Web Console test for bug 632347 - generators</title>
<!-- Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ -->
<script type="application/javascript;version=1.8">
(function(){
function genFunc() {
var a = 5;
while (a < 10) {
yield a++;
}
}
window._container = {};
_container.gen1 = genFunc();
_container.gen1.next();
-var obj = { foo: "bar", baz: "baaz", hay: "stack" };
-_container.iter1 = Iterator(obj);
-
-function Range(low, high) {
- this.low = low;
- this.high = high;
-}
-
-function RangeIterator(range) {
- this.range = range;
- this.current = this.range.low;
-}
-
-RangeIterator.prototype.next = function() {
- if (this.current > this.range.high) {
- throw StopIteration;
- } else {
- return this.current++;
- }
-}
-
-Range.prototype.__iterator__ = function() {
- return new RangeIterator(this);
-}
-
-_container.iter2 = new Range(3, 15);
-
-_container.gen2 = (function* () { for (let i in _container.iter2) yield i * 2; })();
+_container.gen2 = (function* () { for (let i = 3; i <= 15; ++i) yield i * 2; })();
})();
</script>
</head>
<body>
- <p>Web Console test for bug 632347 - iterators and generators.</p>
+ <p>Web Console test for bug 632347 - generators.</p>
</body>
</html>
deleted file mode 100644
--- a/js/src/jit-test/tests/auto-regress/bug1343245.js
+++ /dev/null
@@ -1,7 +0,0 @@
-// |jit-test| error:TypeError
-var o = {
- __iterator__: function() {
- return {};
- }
-};
-for (var j in o) {}
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug684922.js
+++ /dev/null
@@ -1,6 +0,0 @@
-// |jit-test| error: InternalError
-var op = Object.prototype;
-op.b = op;
-op.__iterator__ = Iterator;
-for (var c in {}) {}
-
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/bug885648.js
+++ /dev/null
@@ -1,9 +0,0 @@
-gczeal(4,1);
-var iterable = {persistedProp: 17};
-iterable.__iterator__ = function() {
- yield ["foo", 2];
- yield ["bar", 3];
-};
-var it = Iterator(iterable);
-assertEq(it.next().toString(), "foo,2");
-assertEq(it.next().toString(), "bar,3");
deleted file mode 100644
--- a/js/src/jit-test/tests/basic/testCustomIterator.js
+++ /dev/null
@@ -1,26 +0,0 @@
-function my_iterator_next() {
- if (this.i == 10) {
- this.i = 0;
- throw this.StopIteration;
- }
- return this.i++;
-}
-function testCustomIterator() {
- var o = {
- __iterator__: function () {
- return {
- i: 0,
- next: my_iterator_next,
- StopIteration: StopIteration
- };
- }
- };
- var a=[];
- for (var k = 0; k < 100; k += 10) {
- for(var j in o) {
- a[k + (j >> 0)] = j*k;
- }
- }
- return a.join();
-}
-assertEq(testCustomIterator(), "0,0,0,0,0,0,0,0,0,0,0,10,20,30,40,50,60,70,80,90,0,20,40,60,80,100,120,140,160,180,0,30,60,90,120,150,180,210,240,270,0,40,80,120,160,200,240,280,320,360,0,50,100,150,200,250,300,350,400,450,0,60,120,180,240,300,360,420,480,540,0,70,140,210,280,350,420,490,560,630,0,80,160,240,320,400,480,560,640,720,0,90,180,270,360,450,540,630,720,810");
--- a/js/src/jit-test/tests/debug/Frame-onStep-06.js
+++ b/js/src/jit-test/tests/debug/Frame-onStep-06.js
@@ -43,24 +43,16 @@ check("x != 0");
check("x & 1");
check("x | 1");
check("x ^ 1");
check("~x");
check("x << 1");
check("x >> 1");
check("x >>> 1");
-g.eval("function lastStep() { throw StopIteration; }");
-g.eval("function emptyIterator() { debugger; log += 'x'; return { next: lastStep }; }");
-g.eval("var customEmptyIterator = { __iterator__: emptyIterator };");
-g.log = '';
-g.eval("for (i in customEmptyIterator);\n" +
- "log += 'y';\n");
-assertEq(g.log, 'dxsy');
-
g.eval("var getter = { get x() { debugger; return log += 'x'; } }");
check("getter.x");
g.eval("var setter = { set x(v) { debugger; return log += 'x'; } }");
check("setter.x = 1");
g.eval("Object.defineProperty(this, 'thisgetter', { get: function() { debugger; log += 'x'; }});");
check("thisgetter");
deleted file mode 100644
--- a/js/src/jit-test/tests/ion/bug754718.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// |jit-test| error: TypeError; need-for-each
-
-(function() {
- var a, b;
- for each (a in [{}, {__iterator__: function(){}}])
- for (b in a) { }
-})();
-
--- a/js/src/tests/js1_7/extensions/basic-for-each.js
+++ b/js/src/tests/js1_7/extensions/basic-for-each.js
@@ -37,48 +37,16 @@ try
for (var i in iterable)
{
if (i != "persistedProp")
throw "no persistedProp!";
if (iterable[i] != 17)
throw "iterable[\"persistedProp\"] == 17";
}
- var keys = ["foo", "bar", "baz"];
- var vals = [6, 5, 14];
-
- iterable.__iterator__ =
- function(keysOnly)
- {
- var gen =
- function()
- {
- for (var i = 0; i < keys.length; i++)
- {
- if (keysOnly)
- yield keys[i];
- else
- yield [keys[i], vals[i]];
- }
- };
- return gen();
- };
-
- // for each sets keysOnly==false
- var index = 0;
- for each (var v in iterable)
- {
- if (!Array_equals(v, [keys[index], vals[index]]))
- throw "for-each iteration failed on index=" + index + "!";
- index++;
- }
- if (index != keys.length)
- throw "not everything iterated! index=" + index +
- ", keys.length=" + keys.length;
-
if (iterable.persistedProp != 17)
throw "iterable.persistedProp not persisted!";
}
catch (e)
{
failed = e;
}
--- a/js/src/tests/js1_7/extensions/basic-for-in.js
+++ b/js/src/tests/js1_7/extensions/basic-for-in.js
@@ -25,48 +25,16 @@ try
for (var i in iterable)
{
if (i != "persistedProp")
throw "no persistedProp!";
if (iterable[i] != 17)
throw "iterable[\"persistedProp\"] == 17";
}
- var keys = ["foo", "bar", "baz"];
- var vals = [6, 5, 14];
-
- iterable.__iterator__ =
- function(keysOnly)
- {
- var gen =
- function()
- {
- for (var i = 0; i < keys.length; i++)
- {
- if (keysOnly)
- yield keys[i];
- else
- yield [keys[i], vals[i]];
- }
- };
- return gen();
- };
-
- // for in sets keysOnly==true
- var index = 0;
- for (var k in iterable)
- {
- if (k != keys[index])
- throw "for-in iteration failed on keys[\"" + index + "\"]";
- index++;
- }
- if (index != keys.length)
- throw "not everything iterated! index=" + index +
- ", keys.length=" + keys.length;
-
if (iterable.persistedProp != 17)
throw "iterable.persistedProp not persisted!";
}
catch (e)
{
failed = e;
}
deleted file mode 100644
--- a/js/src/tests/js1_7/extensions/regress-346021.js
+++ /dev/null
@@ -1,45 +0,0 @@
-/* -*- 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/. */
-
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 346021;
-var summary = 'Implementing __iterator__ as generator';
-var actual = '';
-var expect = '';
-
-
-//-----------------------------------------------------------------------------
-test();
-//-----------------------------------------------------------------------------
-
-function test()
-{
- enterFunc ('test');
- printBugNumber(BUGNUMBER);
- printStatus (summary);
-
- var o = { __iterator__: function () { print(12); yield 42; } };
-
- expect = 42;
- actual = 0;
-
- for (let i in Iterator(o))
- {
- actual = i;
- }
-
- reportCompare(expect, actual, summary);
-
- actual = 0;
-
- for (let i in o)
- {
- actual = i; // this doesn't iterate 42
- }
-
- reportCompare(expect, actual, summary);
-
- exitFunc ('test');
-}
deleted file mode 100644
--- a/js/src/tests/js1_7/extensions/regress-354945-01.js
+++ /dev/null
@@ -1,34 +0,0 @@
-/* -*- 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/. */
-
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 354945;
-var summary = 'Do not crash with new Iterator';
-var expect = 'TypeError: trap __iterator__ for ({__iterator__:(function(){ })}) returned a primitive value';
-var actual;
-
-
-//-----------------------------------------------------------------------------
-test();
-//-----------------------------------------------------------------------------
-
-function test()
-{
- enterFunc ('test');
- printBugNumber(BUGNUMBER);
- printStatus (summary);
-
- try {
- var obj = {};
- obj.__iterator__ = function(){ };
- for(t in (new Iterator(obj))) { }
- } catch (ex) {
- actual = ex.toString();
- }
-
- reportCompare(expect, actual, summary);
-
- exitFunc ('test');
-}
deleted file mode 100644
--- a/js/src/tests/js1_7/extensions/regress-354945-02.js
+++ /dev/null
@@ -1,38 +0,0 @@
-/* -*- 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/. */
-
-//-----------------------------------------------------------------------------
-var BUGNUMBER = 354945;
-var summary = 'Do not crash with new Iterator';
-var actual = 'No Crash';
-var expect = 'No Crash';
-
-
-//-----------------------------------------------------------------------------
-test();
-//-----------------------------------------------------------------------------
-
-function test()
-{
- enterFunc ('test');
- printBugNumber(BUGNUMBER);
- printStatus (summary);
-
- expect = 'TypeError: trap __iterator__ for ({__iterator__:(function(){ })}) returned a primitive value';
- var obj = {};
- obj.__iterator__ = function(){ };
- try
- {
- for(t in (obj)) { }
- }
- catch(ex)
- {
- actual = ex + '';
- }
-
- reportCompare(expect, actual, summary);
-
- exitFunc ('test');
-}