When target is es2022 and keepClassNames is enabled, the static property of a class that uses a decorator uses the wrong class name when referencing its own other static property.
Also, as I tested, the tranform result is as expected in all of the following options:
The Class referenced by the static property in Cls4, Cls5 should be Cls4, Cls5 respectively:
...
let Cls4 = class Cls4 {
static NAME = Cls4.name;
name = Cls4.name;
getName() {
return Cls4.NAME;
}
};
Cls4 = _ts_decorate([
Decorator()
], Cls4);
let Cls5 = class Cls5 {
static NAME = Cls5.name;
name = Cls5.name;
};
Cls5 = _ts_decorate([
Decorator()
], Cls5);
...
Describe the bug
When target is es2022 and keepClassNames is enabled, the static property of a class that uses a decorator uses the wrong class name when referencing its own other static property.
Also, as I tested, the tranform result is as expected in all of the following options:
Input code
No response
Config
No response
Playground link
https://play.swc.rs/?version=1.3.90&code=H4sIAAAAAAAAA42P0QrCIBSG7wXf4VxuN0Gb7iJYFNVlewcxiWApqF3F3j3Pok1pwi4E%2FTzn%2F%2FhvSvbCKpBGOw9nJY0V3tgdFCW0ezj1wrmJUkKJRBK428KbEgDnhX9I6I7XC7Qj32jxVPiFB%2B8pR3pXvguP4BgzAKzyL6u%2FYxiFdKBkSIxVxlhFybPvR9OMOpNRx9OHqXFRRrsss8sW%2FWxdX%2FbXN2PnGTtftPMVfZpMYjPvfgA4YuxpHwIAAA%3D%3D&config=H4sIAAAAAAAAA02LOw7CQAwF%2B5xi5ZoCbUmbnjtYmxe0IZ%2BVbSRWUe6OCQTR%2Bc141iYEGjTRJax%2B%2BigsCvltJ1pn46cTslqgSXIxOh22Q1qEbRH1D5MHdrF9PBnLDfZuofEc47ejO1DakVWvPOGv3Dua8pz76rTnUdFsL%2Boq0SamAAAA
SWC Info output
No response
Expected behavior
The Class referenced by the static property in Cls4, Cls5 should be Cls4, Cls5 respectively:
Actual behavior
No response
Version
1.3.90
Additional context
No response