Boshen
66a680a119
deps(coverage): bump test262 ( #7695 )
2024-12-06 14:34:01 +08:00
Dunqing
0ca10e270a
refactor(transformer): use ctx.var_declarations.create_var* methods ( #7666 )
...
It turns out these APIs are very useful, we remove many boilerplate code.
2024-12-05 14:31:20 +00:00
Dunqing
58a125ff88
fix(transformer/async-to-generator): correct the SymbolFlags of function id in module ( #7470 )
2024-11-26 11:59:22 +00:00
Dunqing
37842c166d
fix(transformer/object-rest-spread): generate catch variable binding with correct SymbolFlags ( #7469 )
2024-11-26 11:59:21 +00:00
Boshen
6f161de10f
chore(coverage): bump test262, babel and TypeScript submodules ( #7452 )
2024-11-24 16:26:45 +00:00
Dunqing
4d6bd07afe
fix(transformer/async-generator-functions): correct all binding scope id ( #7425 )
...
Fixed a bunch of semantic errors by removing moving binding logic 😢 . This plugin constructs a complex `for-await` replacement so that I wrongly move to an incorrect scope.
2024-11-22 16:29:00 +00:00
Dunqing
7ff9f13973
fix(transformer): correct all ReferenceFlags ( #7410 )
2024-11-22 09:10:55 +00:00
Dunqing
6f0fe38bff
fix(semantic)!: correct all ReferenceFlags::Write according to the spec ( #7388 )
...
close #7323
According to the specification re-design the JavaScript-part ReferenceFlags inferring approach.
* https://tc39.es/ecma262/#sec-assignment-operators-runtime-semantics-evaluation
* https://tc39.es/ecma262/#sec-postfix-increment-operator-runtime-semantics-evaluation
* https://tc39.es/ecma262/#sec-runtime-semantics-restdestructuringassignmentevaluation
* ... See references of https://tc39.es/ecma262/#sec-putvalue
### Changes
1. The left-hand of `AssignmentExpression` is always `ReferenceFlags::Write`
```js
let a = 0;
console.log(a = 0);
^ Write only
```
2. The `argument` of `UpdateExpression` is always `ReferenceFlags::Read | Write`
```js
let a = 0;
a++;
^ Read and Write
```
This change might cause some trouble for `Minfier` to remove this code, because ‘a’ is not used elsewhere. I have taken a look at `esbuild` and `Terser`. Only the `Terser` can remove this code.
2024-11-22 06:08:30 +00:00
Boshen
224775c056
feat(transformer): transform object rest spread ( #7003 )
...
https://babel.dev/docs/babel-plugin-transform-object-rest-spread
2024-11-21 11:33:26 +00:00
Boshen
885e37f8eb
feat(transformer): Optional Chaining ( #6990 )
...
close : #6958
2024-11-21 03:12:18 +00:00
Dunqing
eea4ab830a
fix(transformer/helper-loader): incorrect SymbolFlags for default import when SourceType is script ( #7226 )
2024-11-09 14:32:44 +00:00
Dunqing
ede10dc030
fix(transformer/async-to-generator): incorrect transform when super expression is inside async method ( #7171 )
...
After transformation, super expressions have moved to unexpected places. This PR replaces super expression to call expression, and then inserts the super methods to the top of the method body.
For example:
Before:
```js
class G {
async method() {
super.foo()
}
}
```
After:
```js
class G {
method() {
var _superprop_getFoo = () => super.foo,
_this = this;
return _asyncToGenerator(function* () {
_superprop_getFoo().call(_this);
})();
}
}```
2024-11-08 08:18:45 +00:00
Dunqing
293d072e77
fix(transformer/async-to-generator): only transform object method in exit_function ( #7199 )
...
part of #7175
2024-11-08 03:03:27 +00:00
Dunqing
8573f79c6d
feat(transformer): turn on async_to_generator and async_generator_functions plugins in enable_all ( #7135 )
2024-11-06 03:27:13 +00:00
Boshen
fcaba4a92a
feat(transformer): add TransformerOptions::env with EnvOptions ( #7037 )
2024-10-31 12:30:32 +00:00
Boshen
4dc5e51cb1
fix(transformer): only run typescript plugin for typescript source ( #6889 )
...
closes #6865
TypeScript plugin changes import / export statements so it needs to be turned off for non-typescript files. This should also give a little performance boost for non-typescript files.
2024-10-25 13:59:31 +00:00
leaysgur
90c786c420
feat(regular_expression)!: Support ES2025 Duplicated named capture groups ( #6847 )
...
Closes #6358
@preyneyv I know you've been working on this problem.
This is an implementation that has been dormant on my local for a while.
- All tests are passing
- However, the approach is simple but not general, so there might be some edge cases that were missed
- There's also room for improvement in terms of performance
For these reasons, it was marked as WIP for me.
I believe the test cases and other parts are usable, so feel free to fork and replace them with your implementation if you'd like.
2024-10-25 02:13:57 +00:00
Dunqing
076f5c39f4
fix(transformer/typescript): retain ExportNamedDeclaration without specifiers and declaration ( #6848 )
...
close : #6825
2024-10-24 07:59:07 +00:00
Boshen
3711c32f22
chore(coverage): bump test262, babel and TypeScript ( #6702 )
...
closes #6692
2024-10-20 15:02:26 +00:00
Tapan Prakash
9f9057b99f
fix(regular_expression): Fixed control Y regular expression ( #6524 )
...
Fixes https://github.com/oxc-project/oxc/issues/6413
Fixed regular expression for control Y
2024-10-14 11:19:37 +08:00
leaysgur
b5b0af98cb
feat(regular_expression): Support RegExp Modifiers ( #6410 )
...
Fixes #6354
2024-10-10 14:46:17 +00:00
leaysgur
c822b48d4f
fix(regular_expression): Fix CharacterClass negative codegen ( #6415 )
...
Part of #6413 , fixes these mismatch.
```
× Regular Expression content mismatch for `/[^]a/m`: `[]a` == `[]a`
× Regular Expression content mismatch for `/a[^]/`: `a[]` == `a[]`
× Regular Expression content mismatch for `/[^]/`: `[]` == `[]`
× Regular Expression content mismatch for `/[^]/`: `[]` == `[]`
```
2024-10-10 05:00:45 +00:00
Boshen
95892ecc86
feat(coverage): add ContentEq test for regular_expression ( #6411 )
...
closes #6409
Marking as good first issue if anyone wants to pick this up and fix the failing test.
2024-10-10 02:21:21 +00:00
Boshen
eacde0553e
chore(coverage): proposal-json-modules to stage 4 ( #6380 )
2024-10-09 03:09:35 +00:00
overlookmotel
0f5afd7ede
test(transformer): transform checker output symbol name for mismatches ( #6286 )
...
Transform checker include symbol names in output for symbol mismatches. This is rather more helpful for locating bugs than just `SymbolId(3)`.
2024-10-05 14:42:06 +00:00
overlookmotel
eadffb900e
test(conformance): move conformance snapshots into separate directory ( #5924 )
2024-09-20 12:30:39 +00:00