-
-
Notifications
You must be signed in to change notification settings - Fork 486
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
fix(transformer/class-properties): replace references to class name with temp var in static prop initializers #7610
Conversation
Your org has enabled the Graphite merge queue for merging into mainAdd the label “0-merge” to the PR and Graphite will automatically add it to the merge queue when it’s ready to merge. Or use the label “hotfix” to add to the merge queue as a hot fix. You must have a Graphite account and log in to Graphite in order to use the merge queue. Sign up using this link. |
Merge activity
|
CodSpeed Performance ReportMerging #7610 will not alter performanceComparing Summary
|
…ith temp var in static prop initializers (#7610) Similar to #7516. Fix class properties transform to replace references to class name in static prop initializers with temp var. Input: ```js class C { static getSelf = () => C; } const C2 = C; C = 123; assert(C2.getSelf() === C); ``` Output: ```js var _C; class C {} _C = C; _defineProperty(C, "getSelf", () => _C); const C2 = C; C = 123; assert(C2.getSelf() === C); ``` Previously, temp var wasn't used so code was `_defineProperty(C, "getSelf", () => C);`. `C` is altered later by `C = 123`, so `C2.getSelf()` returned `123`, instead of reference to the class.
34acef5
to
7d1c12e
Compare
a15ca31
to
eb825ed
Compare
Similar to #7516. Fix class properties transform to replace references to class name in static prop initializers with temp var.
Input:
Output:
Previously, temp var wasn't used so code was
_defineProperty(C, "getSelf", () => C);
.C
is altered later byC = 123
, soC2.getSelf()
returned123
, instead of reference to the class.