oxc/tasks/transform_conformance/snapshots
overlookmotel 0eadd9f6de fix(transformer/class-properties): create temp var for class where required (#7516)
Fix class properties transform to create a temp var for class when it's required.

Input:

```js
class C {
  static getSelf = () => this;
}
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.

The logic around when a temp var is required and when it's not, and when/where it's referenced is ridiculously complicated. So add some debug assert mechanisms to double-check the logic.
2024-12-03 07:46:04 +00:00
..
babel-plugin-transform-object-rest-spread/test/fixtures feat(transformer): transform object rest spread (#7003) 2024-11-21 11:33:26 +00:00
babel-plugin-transform-optional-chaining/test/fixtures feat(transformer): Optional Chaining (#6990) 2024-11-21 03:12:18 +00:00
babel.snap.md fix(transformer/class-properties): create temp var for class where required (#7516) 2024-12-03 07:46:04 +00:00
babel_exec.snap.md fix(transformer/class-properties): create temp var for class where required (#7516) 2024-12-03 07:46:04 +00:00
oxc.snap.md feat(oxc_transformer): support jsx pragma that are long member expressions (#7538) 2024-12-02 14:02:38 +00:00
oxc_exec.snap.md feat(transform_conformance): keep exec snapshot files (#7565) 2024-12-01 10:13:47 +00:00