(get_iterable)
| 1312 | |
| 1313 | // yield*, argument's return method is "undefined". |
| 1314 | function TestYieldStarWithoutReturn(get_iterable) { |
| 1315 | assertTrue(get_iterable().return == undefined); |
| 1316 | |
| 1317 | function* g() { yield* get_iterable() } |
| 1318 | |
| 1319 | { |
| 1320 | let gen = g(); |
| 1321 | assertEquals({value: 1, done: false}, gen.next()); |
| 1322 | assertEquals({value: undefined, done: true}, gen.return()); |
| 1323 | } |
| 1324 | |
| 1325 | assertEquals(42, (() => { |
| 1326 | for (let x of g()) break; |
| 1327 | return 42; |
| 1328 | })()); |
| 1329 | |
| 1330 | assertEquals(42, (() => { |
| 1331 | for (let x of g()) return 42; |
| 1332 | })()); |
| 1333 | |
| 1334 | assertThrowsEquals(() => { |
| 1335 | for (let x of g()) throw 42; |
| 1336 | }, 42); |
| 1337 | } |
| 1338 | { |
| 1339 | let get_iterable1 = () => [1, 2]; |
| 1340 | let get_iterable2 = function*() { yield 1; yield 2 }; |
no test coverage detected