<div dir="ltr"><div><div><div><div><div><div><div><div><div><div><div><div>Hi all,<br><br></div>This is just a heads up that I'm working on <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1199296"><b>Bug 1199296</b></a><br><br></div>Up until now, it has been legal to write a getter method which was implicitly a generator, just by adding a yield expression to it, i.e.:<br><br></div><div>```js<br></div>let obj = {<br></div>    get list() {<br></div>        while(...) {<br>             ...<br></div>             yield nextItem;<br>        }<br>    }<br>};<br>```<br><br></div>and then use that getter in a loop later<br><br></div><div>```js<br></div>for (let item of obj.list) {<br>    ...<br>}<br>```<br><br></div>After my work lands, that yield above will be a syntax error, as this pattern is actually disallowed by the current JS spec.<br><br></div>An easy fix is just to change list to a generator method:<br><br><div>```js<br></div>let obj = {<br>    *list() {<br>        while(cond)<br>             yield nextItem;<br>    }<br>};<br>```<br><br>and then use that generator appropriately in the loop<br><br><div>```js<br></div>for (let item of obj.list()) {<br>    ...<br>}<br>```<br><br></div><div>Then everything should work as before.<br></div><div><br></div>Thanks,<br><br></div><div>Eric<br></div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1199296"><b></b></a></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div>