New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
useDefineForClassFields skips emit of ambient properties #35058
useDefineForClassFields skips emit of ambient properties #35058
Conversation
Previously: ```ts class C { declare p } ``` would incorrectly emit ```js class C { constructor() { Object.defineProperty(this, "p", { enumerable: true, configurable: true, writable: true, value: void 0 }); } } ``` when useDefineForClassFields was turned on (for targets <ESNext).
Note the ESNext emit was also broken. Maybe that needs a snapshot test too? |
This moves the check earlier in the pipeline.
@robpalme Thanks, that resulted in a better place to put the new check. I also ported the new test |
@typescript-bot cherry-pick this to release-3.7 |
🔔 reviewers can we get some eyes on this so we can get 3.7.3 out sooner? |
Component commits: 8ae5a8c useDefineForClassFields skips emit of ambient properties Previously: ```ts class C { declare p } ``` would incorrectly emit ```js class C { constructor() { Object.defineProperty(this, "p", { enumerable: true, configurable: true, writable: true, value: void 0 }); } } ``` when useDefineForClassFields was turned on (for targets <ESNext). 0ec9c04 Fix bug for ESNext as well This moves the check earlier in the pipeline. e1aa034 update baselines
Hey @DanielRosenwasser, I've opened #35241 for you. |
Component commits: 8ae5a8c useDefineForClassFields skips emit of ambient properties Previously: ```ts class C { declare p } ``` would incorrectly emit ```js class C { constructor() { Object.defineProperty(this, "p", { enumerable: true, configurable: true, writable: true, value: void 0 }); } } ``` when useDefineForClassFields was turned on (for targets <ESNext). 0ec9c04 Fix bug for ESNext as well This moves the check earlier in the pipeline. e1aa034 update baselines
Previously:
would incorrectly emit
when useDefineForClassFields was turned on (for targets <ESNext).
Fixes #34972