Boshen
44a10c4b91
fix(codegen): object shorthand with parens ({x: (x)}) -> ({ x }) ( #4391 )
2024-07-21 14:04:17 +00:00
Boshen
3d88f20cbb
fix(codegen): print shorthand for all { x } variants ( #4374 )
...
closes #4340
2024-07-21 19:54:21 +08:00
Boshen
e624dff1d4
fix(codegen,mangler): do not print shorthand for ObjectProperty ( #4350 )
...
I'll fix the TODO's later.
2024-07-18 16:26:33 +00:00
Boshen
3df9e697cc
fix(mangler): no shorthand BindingProperty; handle var hoisting and export variables ( #4319 )
...
Trying to pass tests in https://github.com/oxc-project/monitor-oxc
2024-07-17 18:12:42 +08:00
Boshen
bf3d8d3e8f
fix(codegen): print annotation comment inside parens for new and call expressions ( #4290 )
2024-07-16 06:55:36 +00:00
Boshen
a71787572e
chore: remove unsafe_code = "warn" rust lint
...
Feels too verbose as we already have unsafe comment turned on
2024-07-15 10:39:08 +08:00
Boshen
9a094e861e
chore(codegen): add ts snapshot test
2024-07-14 20:46:22 +08:00
Boshen
d1c4be0020
refactor(codegen): clean up annotation_comment
2024-07-14 15:55:50 +08:00
Boshen
084ab7602d
fix(codegen): use ryu-js for f64 to string
2024-07-14 13:23:30 +08:00
Boshen
e167ef79c6
fix(codegen): print parenthesis properly ( #4245 )
...
`TSParenthesizedType` handles parenthesis in ts types.
It should be considered a bug if parenthesis is not printed correctly after this PR.
2024-07-14 04:13:10 +00:00
Boshen
c65198fa15
fix(codegen): choose the right quote for jsx attribute string ( #4236 )
2024-07-12 17:30:24 +00:00
Boshen
be82c286d6
fix(codegen): print JSXAttributeValue::StringLiteral directly ( #4231 )
...
jsx attribute string is interpreted as is without escaping.
The transformer is responsible for converting it to plain js string.
2024-07-12 16:17:23 +00:00
IWANABETHATGUY
66b455a2b2
fix(oxc_codegen): avoid print same pure comments multiple time ( #4230 )
...
## Before
```bash
Original:
const builtInSymbols = new Set(
/*#__PURE__*/
Object.getOwnPropertyNames(Symbol)
.filter(key => key !== 'arguments' && key !== 'caller')
)
Printed:
const builtInSymbols = new Set(/*#__PURE__*/ /*#__PURE__*/ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller"));
Minified:
const builtInSymbols=new Set(Object.getOwnPropertyNames(Symbol).filter((key)=>key!=="arguments"&&key!=="caller"))
```
## After
```bash
Original:
const builtInSymbols = new Set(
/*#__PURE__*/
Object.getOwnPropertyNames(Symbol)
.filter(key => key !== 'arguments' && key !== 'caller')
)
Printed:
const builtInSymbols = new Set(/*#__PURE__*/ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller"));
Minified:
const builtInSymbols=new Set(Object.getOwnPropertyNames(Symbol).filter((key)=>key!=="arguments"&&key!=="caller"))
```
2024-07-12 23:07:43 +08:00
Boshen
83c2c62f7b
feat(codegen): add option for choosing quotes; remove slow choose_quot method ( #4219 )
2024-07-12 03:08:22 +00:00
IWANABETHATGUY
1c117eb20d
fix: avoid print extra semicolon after accessor property ( #4199 )
...
## Before
```js
export default class Foo { @x @y accessor #aDef = 1 }
```
**output**
```bash
Original:
export default class Foo { @x @y accessor #aDef = 1 }
Printed:
export default class Foo {
accessor #aDef=1;;
}
```
2024-07-11 20:16:02 +08:00
Boshen
e3e663bae4
feat(mangler): initialize crate and integrate into minifier ( #4197 )
2024-07-11 10:35:13 +00:00
Boshen
aa22073736
refactor(codegen): improve print API ( #4196 )
2024-07-11 08:41:04 +00:00
Luca Bruno
5731e3957f
refactor(ast)!: store span details inside comment struct ( #4132 )
...
This tweaks `Comment` definition in order to internally store the start
and end position of its span.
Closes: https://github.com/oxc-project/oxc/issues/4069
2024-07-09 23:23:43 +08:00
IWANABETHATGUY
365d9ba252
feat(oxc_codegen): generate annotation comments before CallExpression and NewExpression ( #4119 )
...
1. test case copy from `vue/core`, here are all usages of `#__PURE__` in
`vue/core`
https://gist.github.com/IWANABETHATGUY/c7911ecd98467a2969b2a994a34d32bc#file-pure_annotation_in_vue_repo-sh
2. Also took a look in other codebase,
https://github.com/search?q=%23__PURE__&type=code , most of the usage of
`#__PURE__` attached as leading comment before `CallExpression` and
`NewExpression`
2024-07-09 00:22:28 +08:00
Boshen
5472b7c990
fix(codegen): 256 indentations level is not enough for codegen
2024-07-08 00:25:37 +08:00
michaelm
564a75ab37
fix(codegen): missing TypeParameters in TSConstructSignature ( #4063 )
2024-07-06 13:59:49 +08:00
Boshen
aaac2d8775
fix(codegen): preserve parentheses from AST instead calculating from operator precedence ( #4055 )
...
…operator precedence
Calculating from operator precedence is currently unsafe and will result
incorrect semantics.
2024-07-05 14:01:17 +08:00
Egor Blinov
5e5b1b14a1
fix(codegen): correct accessibility emit for class formal-parameters/methods/properties ( #4042 )
2024-07-03 17:27:41 +08:00
Egor Blinov
7768d233c6
feat(isolated-declarations): support optional class methods ( #4035 )
...
Example class
```
export class A {
m1?(): void;
m2(): void {}
}
```
Before the fix:
```
export declare class A {
m1(): void;
}
```
with the fix:
```
export declare class A {
m1?(): void;
m2(): void;
}
```
2024-07-03 09:46:59 +08:00
Dunqing
7844734856
fix(codegen): missing const keyword in TSTypeParamter ( #4022 )
...
close : #4017
2024-07-02 13:47:24 +00:00
Dunqing
6254a4106f
fix(codegen): missing TypeParamters in TSCallSignature ( #4021 )
...
close : #4015
2024-07-02 11:10:15 +00:00
Boshen
23038ad8f8
fix(codegen): print TSFunctionType inside TSTypeAssertion ( #3999 )
2024-07-01 14:44:35 +00:00
Boshen
dac617de29
fix(codegen): print some missing typescript attributes ( #3980 )
2024-06-30 08:58:00 +00:00
Boshen
dc6d45e2e6
feat(ast,codegen): add TSParenthesizedType and print type parentheses correctly ( #3979 )
...
closes #3916
2024-06-30 07:57:48 +00:00
Dunqing
51e54f902c
fix(codegen): should print TSModuleDeclarationKind instead of just module ( #3957 )
2024-06-29 05:24:36 +00:00
underfin
9e8709f06e
fix(sourcemap): should add tokens for unordered span ( #3941 )
...
close: https://github.com/oxc-project/oxc/issues/3843
2024-06-27 20:24:22 +08:00
Dunqing
27665945f1
fix(codegen): print type parameters for MethodDefinition ( #3922 )
...
close : #3918
2024-06-26 07:21:42 +00:00
Boshen
4cf3c7645f
refactor(parser): improve parsing of TypeScript types ( #3903 )
...
- [x] fix everything
2024-06-26 05:58:16 +00:00
rzvxa
6796891e2e
fix(ast)!: rename all instances of BigintLiteral to BigIntLiteral. ( #3898 )
...
Notice the casing! Just for the sake of consistency.
2024-06-25 14:39:42 +00:00
Boshen
ae09a97a09
refactor(ast)!: remove Modifiers from ts nodes ( #3846 )
2024-06-23 19:44:35 +08:00
Boshen
1af5ed3d89
refactor(ast)!: replace Modifiers with declare and const on EnumDeclaration ( #3845 )
2024-06-23 10:34:55 +00:00
Boshen
0673677317
refactor(ast)!: replace Modifiers with declare on Function ( #3844 )
2024-06-23 10:34:54 +00:00
Boshen
ee6ec4ee57
refactor(ast)!: replace Modifiers with declare and abstract on Class ( #3841 )
2024-06-23 10:34:53 +00:00
Boshen
9b38119ec9
refactor(ast)!: replace Modifiers with declare on VariableDeclaration ( #3839 )
...
part of #2958
2024-06-23 10:34:52 +00:00
Boshen
cfcef241db
feat(ast)!: add directives field to TSModuleBlock ( #3830 )
...
closes #3564
2024-06-22 18:14:08 +00:00
Boshen
445603444f
feat(ast)!: add IdentifierReference to ExportSpecifier ( #3820 )
...
closes #3795
closes #3796
2024-06-22 11:43:41 +00:00
overlookmotel
4f7ff7e3ad
perf: do not pass &Atom to functions ( #3818 )
...
`Atom` is just a wrapper around `&str`, so better not to pass `&Atom` to functions, as that's a double-reference. Prefer `Atom` or `&str` instead to avoid indirection.
2024-06-22 04:48:00 +00:00
Dunqing
01da2f78c1
feat(codegen): print TSThisParameter for TSCallSignatureDeclaration and TSMethodSignature ( #3792 )
2024-06-20 10:13:58 +00:00
Dunqing
2821e0e307
feat(codegen): print readonly keyword for TSIndexSignature ( #3791 )
2024-06-20 10:13:51 +00:00
Dunqing
97575d8cab
feat(codegen): print TSClassImplements and TSThisParameter ( #3786 )
...
close: https://github.com/oxc-project/oxc/issues/3692#issuecomment-2178994839
2024-06-20 06:15:23 +00:00
Boshen
5847e16a15
feat(ast,parser): add intrinsic keyword ( #3767 )
...
closes #3759
2024-06-19 14:52:05 +00:00
Boshen
051ceb6539
chore: improve some format by running cargo +nightly fmt
2024-06-19 00:48:30 +08:00
Boshen
5c38a0fd69
feat(codegen)!: new code gen API ( #3740 )
...
This PR introduces two type alias to avoid the confusing const generic `pub struct Codegen<'a, const MINIFY: bool>`
* CodeGenerator - Code generator without whitespace removal.
* WhitespaceRemover - Code generator with whitespace removal.
Usage is changed to a builder pattern:
```rust
CodeGenerator::new()
.enable_comment(...)
.enable_sourcemap(...)
.build(&program);
```
2024-06-18 15:50:12 +00:00
Boshen
5a99d30eba
feat(codegen): improve codegen formatting ( #3735 )
2024-06-18 11:10:36 +00:00
Boshen
bf9b38a197
feat(codegen): improve codegen formatting ( #3731 )
2024-06-18 04:14:10 +00:00