by 2 contributors:

This feature has been removed from the Web standards. Though some browsers may still support it, it is in the process of being dropped. Do not use it in old or new projects. Pages or Web apps using it may break at any time.

Non-standard. The StopIteration object is a SpiderMonkey-specific feature. For future-facing usages, consider using for..of loops and the iterator protocol.

The StopIteration object is used to tell the end of the iteration in the legacy iterator protocol.




StopIteration is a part of legacy iterator protocol, and it will be removed at the same time as legacy iterator and legacy generator.


StopIteration is thrown by Iterator.

var a = {
  x: 10,
  y: 20,
var iter = Iterator(a);
console.log(; // ["x", 10]
console.log(; // ["y", 20]
console.log(; // throws StopIteration

Throwing StopIteration.

function f() {
  yield 1;
  yield 2;
  throw StopIteration;
  yield 3; // this is not executed.

for (var n in f()) {
  console.log(n);   // 1
                    // 2


Non-standard. Not part of any current standards document.

Browser compatibility

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support Not supported (Yes) Not supported Not supported Not supported
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support Not supported Not supported (Yes) Not supported Not supported Not supported

See also

Document Tags and Contributors

Contributors to this page: arai, fscholz
Last updated by: arai,
Hide Sidebar