What is `this` inside a new-invoked generator?
# André Bargull (11 years ago)
Question: what does the following code snippet log in the last line?
function* gen() { yield this; } let genObj = new gen(); let [_this] = genObj; console.log(_this === genObj); // ???I’m finding three answers:
The spec says [1] that any reference to
thisin a generator invoked vianewcauses aReferenceError.Firefox logs
falsefor the code snippet.A year ago, Allen stated [2] that if you invoke a generator function via
new,thispoints to the generator object. On other words, the code snippet would logtrue.
It's a ReferenceError. Future editions may add a meta property to make it possible to retrieve the current generator object (ecmascript#3626).
Question: what does the following code snippet log in the last line?
function* gen() { yield this; } let genObj = new gen(); let [_this] = genObj; console.log(_this === genObj); // ???I’m finding three answers:
The spec says [1] that any reference to
thisin a generator invoked vianewcauses aReferenceError.Firefox logs
falsefor the code snippet.A year ago, Allen stated [2] that if you invoke a generator function via
new,thispoints to the generator object. On other words, the code snippet would logtrue.[1] people.mozilla.org/~jorendorff/es6-draft.html#sec-generator-function-definitions-runtime-semantics-evaluatebody [2] esdiscuss.org/topic/reason-why-generators-do-not-have-references-to-themselves#content
Question: what does the following code snippet log in the last line? ```js function* gen() { yield this; } let genObj = new gen(); let [_this] = genObj; console.log(_this === genObj); // ??? ``` I’m finding three answers: 1. The spec says [1] that any reference to `this` in a generator invoked via `new` causes a `ReferenceError`. 2. Firefox logs `false` for the code snippet. 3. A year ago, Allen stated [2] that if you invoke a generator function via `new`, `this` points to the generator object. On other words, the code snippet would log `true`. [1] https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generator-function-definitions-runtime-semantics-evaluatebody [2] https://esdiscuss.org/topic/reason-why-generators-do-not-have-references-to-themselves#content-8 -- Dr. Axel Rauschmayer axel at rauschma.de rauschma.de -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20150323/22778f73/attachment.html>