// Iterators from another compartment work with both their own .next method // with the other compartment's .next method. load(libdir + "asserts.js"); load(libdir + "iteration.js"); var g = newGlobal(); g.eval(`var it = [1, 2][Symbol.iterator]();`); assertIteratorNext(g.it, 1); assertDeepEq([][Symbol.iterator]().next.call(g.it), { value: 2, done: false })