Commit graph

59 commits

Author SHA1 Message Date
Andrew McClenaghan
e6d536cb9b
feat(codegen): configurable typescript codegen (#2443)
- Adds option to `CodegenOptions` - `enable_typescript` to enable output
of TS.
- Stops skipping output that is TS when `enable_typescript` is enabled
- Adds TS support to 
    - Function
    - FormalParameter
    - BindingPattern
 - Adds basic tests for TS generation

---------

Co-authored-by: Boshen <boshenc@gmail.com>
2024-02-20 12:09:28 +08:00
Boshen
70a0076eed
refactor: remove global allocator from non-user facing apps (#2401)
The runtime performance gains does not out weight the compilation speed from
building the custom allocators, which takes about a minute to build on
slower machines.
2024-02-12 14:09:05 +08:00
Boshen
650f6c942f
refactor: use our forked version of miette::Reporter for tests (#2266) 2024-02-02 16:15:31 +08:00
Boshen
889837704c
feat(semantic): cfg prototype (#2019)
Co-authored-by: U9G <git@u9g.dev>
2024-01-25 20:19:35 +08:00
underfin
2794064eef
feat(transfrom): transform-json-strings (#2168)
The pr intends to implement the plugin
`babel-plugin-transform-json-strings`. But here is only mutate
`Directive`, the `StringLiteral` is not implement. It need to changed
the `StringLiteral` printer.

I'm intend to add the raw of `StringLiteral`, it will be mutate at
plugin, and using the `raw` to print `StringLiteral`. If you other
ideas, please let me know.

---------

Co-authored-by: Boshen <boshenc@gmail.com>
2024-01-25 10:39:02 +00:00
Dunqing
9e598ff650
feat(transformer): add decorators plugin (#2139) 2024-01-24 11:09:19 +08:00
Dunqing
7711f7abaf
feat(transformer/typescript): support only_remove_type_imports option (#2077) 2024-01-18 23:25:31 +08:00
Wenzhe Wang
32349af691
chore(tasks): remove redundant directory after exec (#2069) 2024-01-17 17:35:15 +08:00
underfin
78b427bc50
feat(transform): support es2015 new target (#1967)
Here implementing the es2015 new target transform, see detail at
https://babel.dev/docs/babel-plugin-transform-template-new-target.

Here has three kinds need to be distinguished.

- `NewTargetKind::Method`, it from `AstKind::ObjectMethod` or
`AstKind::MethodDefinitionKind::Get/Set/Method`. It will be transformed
to `void 0`.
- `NewTargetKind::Constructor`, is from `
AstKind::MethodDefinitionKind::Constructor`. It will be transformed to
`this.constructor`.
- `NewTargetKind::Function`, is from ` AstKind::Function`, here the
function is not the above function. It will be transformed to `this
instanceof _target ? this.constructor : void 0`, here `_target` comes
from the function name or is created by scope uid ident.
2024-01-10 23:59:56 +08:00
秦宇航
ae27a8d1e6
feat(transformer): add partial support for babel-plugin-transform-instanceof (#1802) 2023-12-25 15:06:41 +08:00
Dunqing
32db5d29b3
feat(tasks/transformer): add function name plugin (#1676)
The plugin is added at https://github.com/oxc-project/oxc/pull/1510.
2023-12-15 11:29:34 +08:00
Dunqing
f58b6279c8
feat(transformer): add arrow_functions plugin (#1663) 2023-12-13 20:46:28 +08:00
Ken-HH24
e331cc2677
feat(transformer): duplicate keys (#1649) 2023-12-10 18:07:32 +08:00
Miles Johnson
6cbc5dd75b
feat(transformer): Start on function_name transform. (#1510)
Co-authored-by: Boshen <boshenc@gmail.com>
2023-12-04 13:35:44 +08:00
magic-akari
92c1d9d527
feat(transform): TypeScript Enum (#1173) 2023-11-28 10:33:01 +08:00
IWANABETHATGUY
b6393f052f
feat(transformer/react): handle babel 8 breaking removed-options (#1489)
1. removed options react jsx
2. Passed 4 test cases.
2023-11-22 11:01:40 +08:00
IWANABETHATGUY
f66e4d8ac3
feat(transformer): add transform property-literal plugin (#1458)
1. Add `transform-property-literal-plugin`
2. Passing 2 testcases.

---------

Co-authored-by: Wenzhe Wang <mysteryven@gmail.com>
2023-11-21 23:07:43 +08:00
IWANABETHATGUY
4fb4a85ab1
chore(transformer): 🤖 add diff section when conformance failed in filter mode (#1488) 2023-11-21 21:47:58 +08:00
Dunqing
472707c04e
feat(task/transformer-conformance): skip babel 8 unsupported test cases (#1258)
Prior to babel8, object merging would use `babelHelper.extend`, which
caused most tests to fail
2023-11-13 11:05:36 +08:00
Dunqing
8c624abf9c
feat(transformer/react-jsx): throw the pragma and pragmaFrag cannot be set when runtime is automatic error (#1196)
close: #1194

Here's a rough implementation of my idea of throwing an error.
2023-11-10 12:50:54 +08:00
Dunqing
d8864c15b0
fix(tasks/transform_conformance): only the filtered test cases should be included when passing a filter (#1197) 2023-11-08 17:03:01 +08:00
Dunqing
7d85492a03
feat(transformer/react-jsx): support the sourceType is a script (#1192) 2023-11-08 15:15:00 +08:00
Wenzhe Wang
f71cb9f1da
feat(transform): support TemplateLiteral of babel/plugin-transform-template-literals (#1132)
Co-authored-by: Boshen <boshenc@gmail.com>
2023-11-03 22:19:44 +08:00
Boshen
203cf37695
feat(transformer/react): read comment pragma @jsxRuntime classic / automatic (#1133)
closes #1120
2023-11-03 11:10:11 +08:00
Boshen
69150d812c
refactor(transformer): move Semantic into Transformer (#1130) 2023-11-02 13:10:15 +08:00
Wenzhe Wang
8105ee5872
feat(tasks): skip cases start with dot (#1114)
0effd92d88/packages/babel-helper-fixtures/src/index.ts (L223)
2023-10-30 23:34:43 +08:00
Wenzhe Wang
094dfa5604
feat: support filter exec snap (#1084)
Co-authored-by: Boshen <boshenc@gmail.com>
2023-10-29 05:39:32 +00:00
Boshen
d6ba8910ba
feat(transformer): add props null to React.createElement (#1074) 2023-10-28 15:59:46 +08:00
Wenzhe Wang
b5bfc361fc
feat(transform): transform jsx element name (#1070) 2023-10-27 08:13:40 +08:00
Boshen
d8f1a7fce6
feat(transformer): start implementing react jsx transform (#1057) 2023-10-26 17:27:05 +08:00
Wenzhe Wang
ae74e08141
chore(tasks): only use bun to run babel exec.js (#1060) 2023-10-25 22:33:20 +08:00
Wenzhe Wang
7192520d2b
feat(transformer_conformance): use bun to run babel exec.js test cases (#1012)
closes #999 

Co-authored-by: Boshen <boshenc@gmail.com>
2023-10-25 03:06:07 +00:00
Boshen
854b55a3e6
feat(codegen): json strings proposal (#1039) 2023-10-23 18:29:30 +08:00
Boshen
befc26a440
chore(transform_conformance): remove the duplicated test case 2023-10-23 17:22:27 +08:00
Boshen
5e083b156c
refactor(transform_conformance): remove the Failed: prefix from snapshot 2023-10-20 16:49:04 +08:00
Boshen
4c4ccc6577
feat(transform_conformance): remove legacy decorator tests 2023-10-20 16:47:58 +08:00
Boshen
46a5c42c75
refactor(transformer): add TransformerCtx struct for easier access to symbols and scopes 2023-10-19 16:19:27 +08:00
Boshen
4b719026bf
feat(transform_conformance): handle non-existent output.js (#1007) 2023-10-17 20:44:35 +08:00
Boshen
052661d75e
refactor(transform_conformance): improve report format 2023-10-17 17:41:34 +08:00
Boshen
3605f7c0fc
fix(transform_conformance): fix for codecov 2023-10-17 15:34:50 +08:00
Boshen
1b3b100475
feat(transformer_conformance): read plugins options from babel options.json (#1006)
This PR correctly handles babel `options.json` such as
https://github.com/babel/babel/blob/main/packages/babel-plugin-transform-nullish-coalescing-operator/test/fixtures/assumption-noDocumentAll/options.json
2023-10-17 14:52:51 +08:00
Boshen
678db1d955
feat(transformer): ES2020 Nullish Coalescing Operator (#1004)
The test runner needs an update for reading options.jon, which I'll work
on in the up coming PR.
2023-10-16 21:45:58 +08:00
Boshen
c060621512
feat(transformer): add unit tests and test coverage (#1001) 2023-10-16 14:07:29 +08:00
Boshen
0f72066f2e
feat(transformer): finish 2016 exponentiation operator (#996) 2023-10-16 09:30:04 +08:00
Boshen
b9d0d57fa2
feat(transform_conformance): improve how snapshot is displayed 2023-10-13 13:44:45 +08:00
Boshen
e0ca09b1c9
feat(codegen): implement the basics of non-minifying codegen (#987) 2023-10-13 13:34:21 +08:00
Boshen
ce79bc12ab
feat(transform_conformance): move Formatter to codegen (#986) 2023-10-12 15:13:14 +08:00
Boshen
8c12dff8a3
perf: speed tasks run by using a global allocator 2023-10-11 20:30:30 +08:00
magic-akari
dc08c949a2
feat(transformer): RegexpFlags (#977)
Co-authored-by: Boshen <boshenc@gmail.com>
2023-10-11 07:15:19 -05:00
Wenzhe Wang
09df8e609a
feat(transform): sticky-regex (#968) 2023-10-09 19:12:14 +08:00