=== tests/cases/conformance/es6/spread/iteratorSpreadInCall5.ts === foo(...new SymbolIterator, ...new StringIterator); >foo : Symbol(foo, Decl(iteratorSpreadInCall5.ts, 0, 50)) >SymbolIterator : Symbol(SymbolIterator, Decl(iteratorSpreadInCall5.ts, 2, 43)) >StringIterator : Symbol(StringIterator, Decl(iteratorSpreadInCall5.ts, 14, 1)) function foo(...s: (symbol | string)[]) { } >foo : Symbol(foo, Decl(iteratorSpreadInCall5.ts, 0, 50)) >s : Symbol(s, Decl(iteratorSpreadInCall5.ts, 2, 13)) class SymbolIterator { >SymbolIterator : Symbol(SymbolIterator, Decl(iteratorSpreadInCall5.ts, 2, 43)) next() { >next : Symbol(next, Decl(iteratorSpreadInCall5.ts, 3, 22)) return { value: Symbol(), >value : Symbol(value, Decl(iteratorSpreadInCall5.ts, 5, 16)) >Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1292, 11)) done: false >done : Symbol(done, Decl(iteratorSpreadInCall5.ts, 6, 28)) }; } [Symbol.iterator]() { >Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) >Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1292, 11)) >iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) return this; >this : Symbol(SymbolIterator, Decl(iteratorSpreadInCall5.ts, 2, 43)) } } class StringIterator { >StringIterator : Symbol(StringIterator, Decl(iteratorSpreadInCall5.ts, 14, 1)) next() { >next : Symbol(next, Decl(iteratorSpreadInCall5.ts, 16, 22)) return { value: "", >value : Symbol(value, Decl(iteratorSpreadInCall5.ts, 18, 16)) done: false >done : Symbol(done, Decl(iteratorSpreadInCall5.ts, 19, 22)) }; } [Symbol.iterator]() { >Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) >Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1292, 11)) >iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) return this; >this : Symbol(StringIterator, Decl(iteratorSpreadInCall5.ts, 14, 1)) } }