Dunqing
c1cf0e6dd9
Revert "Release crates v0.22.0" ( #4415 )
...
Reverts oxc-project/oxc#4414
2024-07-23 09:59:38 +08:00
github-actions[bot]
00c7b7dad4
Release crates v0.22.0 ( #4414 )
...
## [0.22.0] - 2024-07-22
- 85a7cea semantic: [**BREAKING**] Remove name from `reference` (#4329 )
(Dunqing)
- f68b659 ast: [**BREAKING**] Reorder fields of
`ArrowFunctionExpression` (#4364 ) (Dunqing)
### Features
- d345b84 ast: Add `#[ast]` attribute to non-visited AST types. (#4309 )
(rzvxa)
- 3c0c709 linter: Add typescript-eslint/no-extraneous-class (#4357 )
(Jaden Rodriguez)
- 0deb027 minfier: Dce `if (xxx) else if (false) { REMOVE }` (#4407 )
(Boshen)
- e33ec18 minifier: Compress `typeof foo == "undefined"` into `typeof
foo > "u"` (#4412 ) (Boshen)- 6068e6b Add error codes to OxcDiagnostic
(#4334 ) (DonIsaac)
### Bug Fixes
- aece1df ast: Visit `Program`s `hashbang` field first (#4368 )
(overlookmotel)
- 44a10c4 codegen: Object shorthand with parens `({x: (x)})` -> `({ x
})` (#4391 ) (Boshen)
- 3d88f20 codegen: Print shorthand for all `{ x }` variants (#4374 )
(Boshen)
- e624dff codegen,mangler: Do not print shorthand for `ObjectProperty`
(#4350 ) (Boshen)
- 267f7c4 minifier: Skip `Object.defineProperty(exports, ...)` for
`cjs-module-lexer` (#4409 ) (Boshen)
- bc8d4e5 semantic: Correct comment (#4410 ) (overlookmotel)
- 6ffce86 semantic: Align `visit_arrow_function_expression` field visit
order with ast (#4366 ) (Dunqing)
- 4cd5df0 sourcemap: Avoid negative line if token_chunks has same
prev_dst_line (#4348 ) (underfin)
- f8565ae transformer/typescript: Unexpectedly removed class binding
from ExportNamedDeclaration (#4351 ) (Dunqing)- ea33f94 Impl
PartialEq<str> for CompactStr (#4352 ) (DonIsaac)
### Performance
- 1b51511 semantic: Use `Atom` instead of `CompactStr` for
`UnresolvedReferencesStack` (#4401 ) (Dunqing)
- 40f9356 semantic: Calculate number of nodes, scopes, symbols,
references before visiting AST (#4367 ) (Dunqing)
- da13d93 semantic: Remove bounds checks on unresolved references stack
(#4390 ) (overlookmotel)
- e70c67b semantic: Remove a branch from `add_scope` (#4384 )
(overlookmotel)
- 402006f semantic: Simplify logic in `enter_scope` + `leave_scope`
(#4383 ) (overlookmotel)
- 7469e01 semantic: Remove branch from `Nodes::add_node` (#4361 )
(overlookmotel)
- 7eb2864 traverse: Speed up finding UID binding name (#4356 )
(overlookmotel)- a207923 Replace some CompactStr usages with Cows
(#4377 ) (DonIsaac)
### Refactor
- d213773 ast: Replace serde rename "lowercase" with "camelCase" (#4376 )
(overlookmotel)
- abfccbd ast: Reduce `#[cfg_attr]` boilerplate in AST type defs (#4375 )
(overlookmotel)
- 5f1c7ec ast: Rename the `visited_node` marker to `ast`. (#4289 )
(rzvxa)
- 58f6ec2 ast: Enter node before scope (#4347 ) (Dunqing)
- 59aea73 ast: Scope is created only if CatchClause has param (#4346 )
(Dunqing)
- 7a3e925 ast_codegen: Better visit marker parsing. (#4371 ) (rzvxa)
- 7a75e0f linter: Use diagnostic codes in lint rules (#4349 ) (DonIsaac)
- a2eabe1 parser: Use error codes for ts diagnostics (#4335 ) (DonIsaac)
- 5d77b36 semantic: `visit_program` visit `hashbang` field (#4370 )
(overlookmotel)
- f7b9ada semantic: `Program` visitor leave scope before node (#4369 )
(overlookmotel)
- 729b288 semantic: Shorten code (#4358 ) (overlookmotel)
- 21d0eee semantic: Use error codes for ts diagnostics (#4336 )
(DonIsaac)
Co-authored-by: Boshen <Boshen@users.noreply.github.com>
2024-07-23 09:38:03 +08:00
Dunqing
f8565ae3cd
fix(transformer/typescript): unexpectedly removed class binding from ExportNamedDeclaration ( #4351 )
...
The original `SymbolFlags` methods were a bit confusing I renamed and re-implemented them.
2024-07-18 16:44:38 +00:00
github-actions[bot]
7d751898b3
Release crates v0.21.0 ( #4344 )
...
## [0.21.0] - 2024-07-18
- d7ab0b8 semantic: [**BREAKING**] Simplify node creation (#4226 )
(lucab)
### Features
- af4dc01 ast: Align ts ast scope with typescript (#4253 ) (Dunqing)
- 83c2c62 codegen: Add option for choosing quotes; remove slow
`choose_quot` method (#4219 ) (Boshen)
- 5d17675 mangler: Add debug mode (#4314 ) (Boshen)
- e3e663b mangler: Initialize crate and integrate into minifier (#4197 )
(Boshen)
- c818472 minifier: Dce conditional expression `&&` or `||` (#4190 )
(Boshen)
- 8a190eb oxc: Export `oxc_mangler` (Boshen)
- 20cdb1f semantic: Align class scope with typescript (#4195 ) (Dunqing)
- 92ee774 semantic: Add `ScopeFlags::CatchClause` for use in CatchClause
(#4205 ) (Dunqing)
- 205c259 sourcemap: Support SourceMapBuilder#token_chunks (#4220 )
(underfin)
- 7eb960d transformer: Decode xml character entity `&#xhhhh` and
`&#nnnn;` (#4235 ) (Boshen)
### Bug Fixes
- bf3d8d3 codegen: Print annotation comment inside parens for new and
call expressions (#4290 ) (Boshen)
- 084ab76 codegen: Use `ryu-js` for f64 to string (Boshen)
- e167ef7 codegen: Print parenthesis properly (#4245 ) (Boshen)
- c65198f codegen: Choose the right quote for jsx attribute string
(#4236 ) (Boshen)
- be82c28 codegen: Print `JSXAttributeValue::StringLiteral` directly
(#4231 ) (Boshen)
- 3df9e69 mangler: No shorthand `BindingProperty`; handle var hoisting
and export variables (#4319 ) (Boshen)
- f144082 minifier: RemoveDeadCode should visit nested expression
(#4268 ) (underfin)
- 66b455a oxc_codegen: Avoid print same pure comments multiple time
(#4230 ) (IWANABETHATGUY)
- 9a87e41 parser: Avoid crashing on invalid const modifier (#4267 )
(lucab)
- 641a78b parser: Fix tests for number parsing (#4254 ) (overlookmotel)
- 9badac0 semantic: Avoid var hosting insert the var variable to the
`CatchClause` scope (#4337 ) (Dunqing)
- 95e15b6 semantic: Incorrect resolve references for `ExportSpecifier`
(#4320 ) (Dunqing)
- c362bf7 semantic: Incorrect resolve references for
`TSInterfaceHeritage` (#4311 ) (Dunqing)
- 351ecf2 semantic: Incorrect resolve references for `TSTypeQuery`
(#4310 ) (Dunqing)
- 1108f2a semantic: Resolve references to the incorrect symbol (#4280 )
(Dunqing)
- 22d56bd semantic: Do not resolve references after `FormalParameters`
in TS type (#4241 ) (overlookmotel)- 1c117eb Avoid print extra semicolon
after accessor property (#4199 ) (IWANABETHATGUY)
### Performance
- a8dc4f3 parser: Speed up parsing numbers with `_` separators (#4259 )
(overlookmotel)
- b94540d parser: Speed up parsing octal literals (#4258 )
(overlookmotel)
- a7b328c parser: Faster parsing decimal numbers (#4257 ) (overlookmotel)
- f9d3f2e semantic: Inline ast record functions (#4272 ) (overlookmotel)
- 8fad7db semantic: Reduce `AstNodeId` to `u32` (#4264 ) (overlookmotel)
- 23743db semantic: Do not record ast nodes for cfg if cfg disabled
(#4263 ) (overlookmotel)
- da69076 semantic: Reduce overhead of cfg recording ast nodes (#4262 )
(overlookmotel)
- cb15303 semantic: Reduce memory copies (#4216 ) (overlookmotel)
- ef4c1f4 semantic: Reduce lookups (#4214 ) (overlookmotel)
- f23e54f semantic: Recycle unresolved references hash maps (#4213 )
(overlookmotel)
- 2602ce2 semantic: Reuse existing map of unresolved refs (#4206 )
(lucab)
### Refactor
- 2c7bb9f ast: Pass final `ScopeFlags` into `visit_function` (#4283 )
(overlookmotel)
- 3e099fe ast: Move `enter_scope` after `visit_binding_identifier`
(#4246 ) (Dunqing)
- aab7aaa ast/visit: Fire node events as the outermost one. (#4203 )
(rzvxa)
- d1c4be0 codegen: Clean up annotation_comment (Boshen)
- 06197b8 codegen: Separate tests (Boshen)
- aa22073 codegen: Improve print API (#4196 ) (Boshen)
- c5731a5 semantic: Remove defunct code setting ScopeFlags twice (#4286 )
(overlookmotel)
- 16698bc semantic: Move function/class-specific code into specific
visitors (#4278 ) (overlookmotel)
- ee16668 semantic: Rename function param (#4277 ) (overlookmotel)
- 25f0771 semantic: Alter syntax of `control_flow!` macro (#4275 )
(overlookmotel)
- 639fd48 semantic: Comment why extra CFG enabled check (#4274 )
(overlookmotel)
- c418bf5 semantic: Directly record `current_node_id` when adding a
scope (#4265 ) (Dunqing)
- ace4f1f semantic: Update the order of `visit_function` and `Visit`
fields in the builder to be consistent (#4248 ) (Dunqing)
- 8bfeabf semantic: Simplify adding `SymbolFlags::Export` (#4249 )
(Dunqing)
- dc2b3c4 semantic: Add strict mode in scope flags for class definitions
(#4156 ) (Dunqing)
- 81ed588 semantic: Convert scope fields to IndexVecs (#4208 ) (lucab)
- bbe5ded semantic: Set `current_scope_id` to `scope_id` in
`enter_scope` (#4193 ) (Dunqing)
- 7f1addd semantic: Correct scope in CatchClause (#4192 ) (Dunqing)
- fc0b17d syntax: Turn the `AstNodeId::dummy` into a constant field.
(#4308 ) (rzvxa)
- a197e01 transformer/typescript: Remove unnecessary code (#4321 )
(Dunqing)
- 1458d81 visit: Add `#[inline]` to empty functions (#4330 )
(overlookmotel)
Co-authored-by: Boshen <Boshen@users.noreply.github.com>
2024-07-18 14:39:07 +08:00
Dunqing
fc39ffa009
Revert "Release crates v0.21.0" ( #4342 )
...
Reverts oxc-project/oxc#4338
https://github.com/oxc-project/oxc/actions/runs/9986290706/job/27598542089
Release failed
2024-07-18 14:11:42 +08:00
github-actions[bot]
0abcf499b7
Release crates v0.21.0 ( #4338 )
...
## [0.21.0] - 2024-07-18
- d7ab0b8 semantic: [**BREAKING**] Simplify node creation (#4226 )
(lucab)
### Features
- af4dc01 ast: Align ts ast scope with typescript (#4253 ) (Dunqing)
- 83c2c62 codegen: Add option for choosing quotes; remove slow
`choose_quot` method (#4219 ) (Boshen)
- 5d17675 mangler: Add debug mode (#4314 ) (Boshen)
- e3e663b mangler: Initialize crate and integrate into minifier (#4197 )
(Boshen)
- c818472 minifier: Dce conditional expression `&&` or `||` (#4190 )
(Boshen)
- 8a190eb oxc: Export `oxc_mangler` (Boshen)
- 20cdb1f semantic: Align class scope with typescript (#4195 ) (Dunqing)
- 92ee774 semantic: Add `ScopeFlags::CatchClause` for use in CatchClause
(#4205 ) (Dunqing)
- 205c259 sourcemap: Support SourceMapBuilder#token_chunks (#4220 )
(underfin)
- 7eb960d transformer: Decode xml character entity `&#xhhhh` and
`&#nnnn;` (#4235 ) (Boshen)
### Bug Fixes
- bf3d8d3 codegen: Print annotation comment inside parens for new and
call expressions (#4290 ) (Boshen)
- 084ab76 codegen: Use `ryu-js` for f64 to string (Boshen)
- e167ef7 codegen: Print parenthesis properly (#4245 ) (Boshen)
- c65198f codegen: Choose the right quote for jsx attribute string
(#4236 ) (Boshen)
- be82c28 codegen: Print `JSXAttributeValue::StringLiteral` directly
(#4231 ) (Boshen)
- 3df9e69 mangler: No shorthand `BindingProperty`; handle var hoisting
and export variables (#4319 ) (Boshen)
- f144082 minifier: RemoveDeadCode should visit nested expression
(#4268 ) (underfin)
- 66b455a oxc_codegen: Avoid print same pure comments multiple time
(#4230 ) (IWANABETHATGUY)
- 9a87e41 parser: Avoid crashing on invalid const modifier (#4267 )
(lucab)
- 641a78b parser: Fix tests for number parsing (#4254 ) (overlookmotel)
- 9badac0 semantic: Avoid var hosting insert the var variable to the
`CatchClause` scope (#4337 ) (Dunqing)
- 95e15b6 semantic: Incorrect resolve references for `ExportSpecifier`
(#4320 ) (Dunqing)
- c362bf7 semantic: Incorrect resolve references for
`TSInterfaceHeritage` (#4311 ) (Dunqing)
- 351ecf2 semantic: Incorrect resolve references for `TSTypeQuery`
(#4310 ) (Dunqing)
- 1108f2a semantic: Resolve references to the incorrect symbol (#4280 )
(Dunqing)
- 22d56bd semantic: Do not resolve references after `FormalParameters`
in TS type (#4241 ) (overlookmotel)- 1c117eb Avoid print extra semicolon
after accessor property (#4199 ) (IWANABETHATGUY)
### Performance
- a8dc4f3 parser: Speed up parsing numbers with `_` separators (#4259 )
(overlookmotel)
- b94540d parser: Speed up parsing octal literals (#4258 )
(overlookmotel)
- a7b328c parser: Faster parsing decimal numbers (#4257 ) (overlookmotel)
- f9d3f2e semantic: Inline ast record functions (#4272 ) (overlookmotel)
- 8fad7db semantic: Reduce `AstNodeId` to `u32` (#4264 ) (overlookmotel)
- 23743db semantic: Do not record ast nodes for cfg if cfg disabled
(#4263 ) (overlookmotel)
- da69076 semantic: Reduce overhead of cfg recording ast nodes (#4262 )
(overlookmotel)
- cb15303 semantic: Reduce memory copies (#4216 ) (overlookmotel)
- ef4c1f4 semantic: Reduce lookups (#4214 ) (overlookmotel)
- f23e54f semantic: Recycle unresolved references hash maps (#4213 )
(overlookmotel)
- 2602ce2 semantic: Reuse existing map of unresolved refs (#4206 )
(lucab)
### Refactor
- 2c7bb9f ast: Pass final `ScopeFlags` into `visit_function` (#4283 )
(overlookmotel)
- 3e099fe ast: Move `enter_scope` after `visit_binding_identifier`
(#4246 ) (Dunqing)
- aab7aaa ast/visit: Fire node events as the outermost one. (#4203 )
(rzvxa)
- d1c4be0 codegen: Clean up annotation_comment (Boshen)
- 06197b8 codegen: Separate tests (Boshen)
- aa22073 codegen: Improve print API (#4196 ) (Boshen)
- c5731a5 semantic: Remove defunct code setting ScopeFlags twice (#4286 )
(overlookmotel)
- 16698bc semantic: Move function/class-specific code into specific
visitors (#4278 ) (overlookmotel)
- ee16668 semantic: Rename function param (#4277 ) (overlookmotel)
- 25f0771 semantic: Alter syntax of `control_flow!` macro (#4275 )
(overlookmotel)
- 639fd48 semantic: Comment why extra CFG enabled check (#4274 )
(overlookmotel)
- c418bf5 semantic: Directly record `current_node_id` when adding a
scope (#4265 ) (Dunqing)
- ace4f1f semantic: Update the order of `visit_function` and `Visit`
fields in the builder to be consistent (#4248 ) (Dunqing)
- 8bfeabf semantic: Simplify adding `SymbolFlags::Export` (#4249 )
(Dunqing)
- dc2b3c4 semantic: Add strict mode in scope flags for class definitions
(#4156 ) (Dunqing)
- 81ed588 semantic: Convert scope fields to IndexVecs (#4208 ) (lucab)
- bbe5ded semantic: Set `current_scope_id` to `scope_id` in
`enter_scope` (#4193 ) (Dunqing)
- 7f1addd semantic: Correct scope in CatchClause (#4192 ) (Dunqing)
- fc0b17d syntax: Turn the `AstNodeId::dummy` into a constant field.
(#4308 ) (rzvxa)
- a197e01 transformer/typescript: Remove unnecessary code (#4321 )
(Dunqing)
- 1458d81 visit: Add `#[inline]` to empty functions (#4330 )
(overlookmotel)
Co-authored-by: Boshen <Boshen@users.noreply.github.com>
2024-07-18 13:56:35 +08:00
Dunqing
95e15b6dc5
fix(semantic): incorrect resolve references for ExportSpecifier ( #4320 )
...
```ts
type A = any;
const B = 0;
export { A, B }
^^^^^^^^ ExportSpecifiers
export { A }
^^^^^ type-only ExportSpecifiers
```
non-type-only `ExportSpecifier` can reference value and type symbols. but currently, `IdentifierReference` in ExportSpecifier only has a `ReferenceFlags::Read`
2024-07-17 09:52:58 +00:00
Dunqing
a88d588a07
feat(semantic): add ReferenceFlags::TSTypeQuery to indicate referenced by TSTypeQuery ( #4317 )
...
`ReferenceFlags::TSTypeQuery` can be used to help us insist on whether the reference is referenced by the type or not.
2024-07-17 09:52:57 +00:00
Dunqing
1108f2a700
fix(semantic): resolve references to the incorrect symbol ( #4280 )
...
close : #3799
related: #3863
2024-07-17 02:50:48 +00:00
rzvxa
fc0b17d5a0
refactor(syntax): turn the AstNodeId::dummy into a constant field. ( #4308 )
2024-07-16 22:43:21 +00:00
overlookmotel
8fad7dbac3
perf(semantic): reduce AstNodeId to u32 ( #4264 )
...
`AstNodeId` was a `usize`. This seems excessive.
Parser has a limit on size of a JS file of 4 GiB. While it is *possible* for a JS file of that size to create an AST with more than `1 << 32` (~4 billion) AST nodes, that would be insanely large.
So make `AstNodeId` `u32` instead.
2024-07-15 04:31:51 +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
Dunqing
92ee77487f
feat(semantic): add ScopeFlags::CatchClause for use in CatchClause ( #4205 )
2024-07-12 03:47:07 +00:00
github-actions[bot]
2a169d1969
Release crates v0.20.0 ( #4189 )
...
## [0.20.0] - 2024-07-11
- 5731e39 ast: [**BREAKING**] Store span details inside comment struct
(#4132 ) (Luca Bruno)
### Features
- 67fe75e ast, ast_codegen: Pass the `scope_id` to the `enter_scope`
event. (#4168 ) (rzvxa)
- 54cd04a minifier: Implement dce with var hoisting (#4160 ) (Boshen)
- 44a894a minifier: Implement return statement dce (#4155 ) (Boshen)
- 725571a napi/transformer: Add `jsx` option to force parsing with jsx
(#4133 ) (Boshen)
### Bug Fixes
- 48947a2 ast: Put `decorators` before everything else. (#4143 ) (rzvxa)
- 7a059ab cfg: Double resolution of labeled statements. (#4177 ) (rzvxa)
- 4a656c3 lexer: Incorrect lexing of large hex/octal/binary literals
(#4072 ) (DonIsaac)
- 28eeee0 parser: Fix asi error diagnostic pointing at invalid text
causing crash (#4163 ) (Boshen)
### Performance
- ddfa343 diagnostic: Use `Cow<'static, str>` over `String` (#4175 )
(DonIsaac)
- 2203143 semantic: Store unresolved refs in a stack (#4162 ) (lucab)
- fca9706 semantic: Faster search for leading comments (#4140 ) (Boshen)
### Documentation
- bdcc298 ast: Update the note regarding the `ast_codegen` markers.
(#4149 ) (rzvxa)
### Refactor
- 03ad1e3 semantic: Tweak comment argument type (#4157 ) (lucab)
Co-authored-by: Boshen <Boshen@users.noreply.github.com>
2024-07-11 11:05:49 +08:00
github-actions[bot]
714bf1dd7f
Release crates v0.19.0 ( #4137 )
...
## [0.19.0] - 2024-07-09
- b936162 ast/ast_builder: [**BREAKING**] Shorter allocator utility
method names. (#4122 ) (rzvxa)
### Features
- 485c871 ast: Allow conversion from `Expression` into `Statement` with
`FromIn` trait. (#4124 ) (rzvxa)
### Refactor
Co-authored-by: Boshen <Boshen@users.noreply.github.com>
2024-07-09 20:32:06 +08:00
github-actions[bot]
e29cdbfe40
Release crates v0.18.0 ( #4136 )
...
## [0.18.0] - 2024-07-09
- d347aed ast: [**BREAKING**] Generate `ast_builder.rs`. (#3890 ) (rzvxa)
### Features
- c6c16a5 minifier: Dce all conditional expressions (#4135 ) (Boshen)
- 365d9ba oxc_codegen: Generate annotation comments before
`CallExpression` and `NewExpression` (#4119 ) (IWANABETHATGUY)
- 3a0f2aa parser: Check for illegal modifiers in modules and namespaces
(#4126 ) (DonIsaac)
- 2f53bdf semantic: Check for abstract ClassElements in non-abstract
classes (#4127 ) (DonIsaac)
- c4ee9f8 semantic: Check for abstract initializations and
implementations (#4125 ) (Don Isaac)
- 44c7fe3 span: Add various implementations of `FromIn` for `Atom`.
(#4090 ) (rzvxa)
### Bug Fixes
- cb1af04 isolated-declarations: Remove the `async` and `generator`
keywords from `MethodDefinition` (#4130 ) (Dunqing)
Co-authored-by: Boshen <Boshen@users.noreply.github.com>
2024-07-09 19:56:10 +08:00
github-actions[bot]
c3f08ce8e0
Release crates v0.17.2 ( #4115 )
...
## [0.17.2] - 2024-07-08
### Features
- 115ac3b allocator: Introduce `FromIn` and `IntoIn` traits. (#4088 )
(rzvxa)
- 720983a napi/transform: Allow setting `sourceType` to `transform`
(#4113 ) (Boshen)
- e386b62 semantic: Check for invalid type import assignments (#4097 )
(DonIsaac)
### Bug Fixes
- 5472b7c codegen: 256 indentations level is not enough for codegen
(Boshen)
- 5c31236 isolated-declarations: Keep literal value for readonly
property (#4106 ) (Dunqing)
- e67c7d1 isolated-declarations: Do not infer type for private
parameters (#4105 ) (Dunqing)
- 3fcad5e isolated_declarations: Remove nested AssignmentPatterns from
inside parameters (#4077 ) (michaelm)
- f8d77e4 isolated_declarations: Infer type of template literal
expressions as string (#4068 ) (michaelm)
- 0f02608 semantic: Bind `TSImportEqualsDeclaration`s (#4100 ) (Don
Isaac)
- 4413e2d transformer: Missing initializer for readonly consructor
properties (#4103 ) (Don Isaac)
### Performance
- 7ed27b7 isolated-declarations: Use `FxHashSet` instead of `Vec` to
speed up the `contain` (#4074 ) (Dunqing)
- 9114c8e semantic: Keep a single map of unresolved references (#4107 )
(Luca Bruno)
Co-authored-by: Boshen <Boshen@users.noreply.github.com>
2024-07-08 19:16:33 +08:00
github-actions[bot]
51d56d37ff
Release crates v0.17.1 ( #4075 )
...
## [0.17.1] - 2024-07-06
### Bug Fixes
- aa585d3 ast_codegen, ast: Visit `ExpressionArrayElement` as
`Expression`. (#4061 ) (rzvxa)
- 564a75a codegen: Missing TypeParameters in TSConstructSignature
(#4063 ) (michaelm)
- adee728 isolated_declarations: Don't report an error for parameters if
they are ObjectPattern or ArrayPattern with an explicit type (#4065 )
(michaelm)
- 1b8f208 isolated_declarations: Correct emit for private static methods
(#4064 ) (michaelm)
- 719fb96 minifier: Omit dce `undefined` which can be a shadowed
variable (#4073 ) (Boshen)
- 150f4d9 napi/transform: Display error with spanned messages (Boshen)
### Performance
- 7fe2a2f parser: Do not copy comments (#4067 ) (overlookmotel)
### Refactor
- 8fa98e0 ast: Inline trivial functions and shorten code (#4066 )
(overlookmotel)
- 65aee19 isolated-declarations: Reorganize scope tree (#4070 ) (Luca
Bruno)
Co-authored-by: Boshen <Boshen@users.noreply.github.com>
2024-07-07 01:29:52 +08:00
github-actions[bot]
224f5ef2cc
Release crates v0.17.0 ( #4059 )
...
## [0.17.0] - 2024-07-05
- e32b4bc ast: [**BREAKING**] Store trivia comments in a sorted slice
(#4045 ) (Luca Bruno)
- 1df6ac0 ast: [**BREAKING**] Rename `visit_enum_memeber` to
`visit_ts_enum_member`. (#4000 ) (rzvxa)
- 4a0eaa0 ast: [**BREAKING**] Rename `visit_enum` to
`visit_ts_enum_declaration`. (#3998 ) (rzvxa)
- c98d8aa ast: [**BREAKING**] Rename `visit_arrow_expression` to
`visit_arrow_function_expression`. (#3995 ) (rzvxa)
### Features
- 1854a52 ast_codegen: Introduce the `#[span]` hint. (#4012 ) (rzvxa)
- 7538af1 ast_codegen: Add visit generator (#3954 ) (rzvxa)
- 7768d23 isolated-declarations: Support optional class methods (#4035 )
(Egor Blinov)
- 0da9dfb minifier: Add constant folding to remove dead code (#4058 )
(Boshen)
### Bug Fixes
- aaac2d8 codegen: Preserve parentheses from AST instead calculating
from operator precedence (#4055 ) (Boshen)
- 5e5b1b1 codegen: Correct accessibility emit for class
formal-parameters/methods/properties (#4042 ) (Egor Blinov)
- 7844734 codegen: Missing const keyword in TSTypeParamter (#4022 )
(Dunqing)
- 6254a41 codegen: Missing TypeParamters in TSCallSignature (#4021 )
(Dunqing)
- 3d29e9c isolated-declarations: Eliminate imports incorrectly when they
are used in `TSInferType` (#4043 ) (Dunqing)
- 02ea19a isolated-declarations: Should emit `export {}` when only
having `ImportDeclaration` (#4026 ) (Dunqing)
- 7c915f4 isolated-declarations: Binding elements with export should
report an error (#4025 ) (Dunqing)
- 05a047c isolated-declarations: Method following an abstract method
gets dropped (#4024 ) (Dunqing)
- c043bec isolated_declarations: Add mapped-type constraint to the scope
(#4037 ) (Egor Blinov)
- b007553 isolated_declarations: Fix readonly specifier on class
constructor params (#4030 ) (Egor Blinov)
- da62839 isolated_declarations: Inferring literal types for readonly
class fileds (#4027 ) (Egor Blinov)
### Refactor
- b51f75b ast_codegen: No longer outputs discard variable for empty
visitors. (#4008 ) (rzvxa)
- edb557c minifier: Add a folder struct for constant folding (#4057 )
(Boshen)
- 243c9f3 parser: Use function instead of trait to parse list with rest
element (#4028 ) (Boshen)
- 1dacb1f parser: Use function instead of trait to parse delimited lists
(#4014 ) (Boshen)
Co-authored-by: Boshen <Boshen@users.noreply.github.com>
2024-07-05 15:46:50 +08:00
github-actions[bot]
e2c9015ef6
Release crates v0.16.3 ( #4013 )
...
## [0.16.3] - 2024-07-02
### Features
- b257d53 linter: Support report
`@typescript-eslint/consistent-type-imports` (#3895 ) (mysteryven)
### Bug Fixes
- 23038ad codegen: Print `TSFunctionType` inside `TSTypeAssertion`
(#3999 ) (Boshen)
- d995f94 semantic: Resolve reference incorrectly when a parameter
references a parameter that hasn't been defined yet (#4004 ) (Dunqing)
- bdee156 transformer/typescript: `declare class` incorrectly preserved
as runtime class (#3997 ) (Dunqing)
- a50ce3d transformer/typescript: Missing initializer for class
constructor arguments with `private` and `protected` modifier (#3996 )
(Dunqing)
### Refactor
- 0fe22a8 ast: Reorder fields to reflect their visit order. (#3994 )
(rzvxa)
- d0eac46 parser: Use function instead of trait to parse normal lists
(#4003 ) (Boshen)
Co-authored-by: Boshen <Boshen@users.noreply.github.com>
2024-07-02 12:47:29 +08:00
Dunqing
d995f94280
fix(semantic): resolve reference incorrectly when a parameter references a parameter that hasn't been defined yet ( #4004 )
...
close : #3682
The TypeScript code that handles this is [here](d8086f14b6/src/compiler/utilities.ts (L11515-L11577) ). It looks complicated.
2024-07-02 02:12:15 +00:00
github-actions[bot]
3870ed5a24
Release crates v0.16.2 ( #3983 )
...
## [0.16.2] - 2024-06-30
### Features
- dc6d45e ast,codegen: Add `TSParenthesizedType` and print type
parentheses correctly (#3979 ) (Boshen)
- 63f36da parser: Parse modifiers with `parse_modifiers` (take 2)
(#3977 ) (DonIsaac)
### Bug Fixes
- dac617d codegen: Print some missing typescript attributes (#3980 )
(Boshen)
- bd1141d isolated-declarations: If declarations is referenced in
`declare global` then keep it (#3982 ) (Dunqing)
### Performance
- b234ddd semantic: Only check for jsdoc if jsdoc building is enabled
(Boshen)
- 1eac3d2 semantic: Use `Atom<'a>` for `Reference`s (#3972 ) (Don Isaac)
- 0c81fbe syntax: Use `NonZeroU32` for `SymbolId` and `ReferenceId`
(#3970 ) (Boshen)
### Refactor
- 5845057 transformer: Pass in symbols and scopes (#3978 ) (Boshen)
Co-authored-by: Boshen <Boshen@users.noreply.github.com>
2024-06-30 19:59:15 +08:00
Boshen
0c81fbeac6
perf(syntax): use NonZeroU32 for SymbolId and ReferenceId ( #3970 )
...
closes https://github.com/oxc-project/backlog/issues/55
closes https://github.com/oxc-project/oxc/issues/3318
2024-06-29 17:29:02 +08:00
github-actions[bot]
fa50e9737e
Release crates v0.16.1 ( #3968 )
...
## [0.16.1] - 2024-06-29
### Features
- 7b38bde parser: Parse modifiers with `parse_modifiers` (#3948 )
(DonIsaac)
- f64ad4b semantic: Make jsdoc building optional (turned off by default)
(#3955 ) (Boshen)
### Bug Fixes
- 51e54f9 codegen: Should print `TSModuleDeclarationKind` instead of
just `module` (#3957 ) (Dunqing)
- 31e4c3b isolated-declarations: `declare global {}` should be kept even
if it is not exported (#3956 ) (Dunqing)
### Refactor
- 2705df9 linter: Improve diagnostic labeling (#3960 ) (DonIsaac)
- 15ec254 semantic: Remove the unused `Semantic::build2` function
(Boshen)
Co-authored-by: Boshen <Boshen@users.noreply.github.com>
2024-06-29 16:53:09 +08:00
github-actions[bot]
4e3e1a39eb
Release crates v0.16.0 ( #3930 )
...
## [0.16.0] - 2024-06-26
- 6796891 ast: [**BREAKING**] Rename all instances of `BigintLiteral` to
`BigIntLiteral`. (#3898 ) (rzvxa)
- 1f85f1a ast: [**BREAKING**] Revert adding `span` field to the
`BindingPattern` type. (#3899 ) (rzvxa)
- ae09a97 ast: [**BREAKING**] Remove `Modifiers` from ts nodes (#3846 )
(Boshen)
- 1af5ed3 ast: [**BREAKING**] Replace `Modifiers` with `declare` and
`const` on `EnumDeclaration` (#3845 ) (Boshen)
- 0673677 ast: [**BREAKING**] Replace `Modifiers` with `declare` on
`Function` (#3844 ) (Boshen)
- ee6ec4e ast: [**BREAKING**] Replace `Modifiers` with `declare` and
`abstract` on `Class` (#3841 ) (Boshen)
- 9b38119 ast: [**BREAKING**] Replace `Modifiers` with `declare` on
`VariableDeclaration` (#3839 ) (Boshen)
- cfcef24 ast: [**BREAKING**] Add `directives` field to `TSModuleBlock`
(#3830 ) (Boshen)
- 4456034 ast: [**BREAKING**] Add `IdentifierReference` to
`ExportSpecifier` (#3820 ) (Boshen)
### Features
- 497769c ast: Add some visitor functions (#3785 ) (Dunqing)
- 4b06dc7 ast: Add TSType::TSIntrinsicKeyword to is_keyword (#3775 )
(Dunqing)
- 5847e16 ast,parser: Add `intrinsic` keyword (#3767 ) (Boshen)
- 2e026e1 ast_codegen: Generate `ast_kind.rs`. (#3888 ) (rzvxa)
- 09f4d3c ast_codegen: Add `ImplGetSpanGenerator`. (#3852 ) (rzvxa)
- 3e78f98 cfg: Add depth first search with hash sets. (#3771 ) (rzvxa)
- 01da2f7 codegen: Print TSThisParameter for TSCallSignatureDeclaration
and TSMethodSignature (#3792 ) (Dunqing)
- 2821e0e codegen: Print readonly keyword for TSIndexSignature (#3791 )
(Dunqing)
- 97575d8 codegen: Print TSClassImplements and TSThisParameter (#3786 )
(Dunqing)
- 5e2baf3 isolated-declarations: Report error for expando functions
(#3872 ) (Dunqing)
- 2cdb34f isolated-declarations: Support for class function overloads
(#3811 ) (Dunqing)
- 231b8f0 isolated-declarations: Support for export default function
overloads (#3809 ) (Dunqing)
- a37138f isolated-declarations: Improve the inference template literal
(#3797 ) (Dunqing)
- b0d7355 isolated-declarations: Transform const expression correctly
(#3793 ) (Dunqing)
- b38c34d isolated-declarations: Support inferring
ParenthesizedExpression (#3769 ) (Dunqing)
- 4134de8 isolated-declarations: Add ts error code to the error message
(#3755 ) (Dunqing)
- 94202de isolated-declarations: Add `export {}` when needed (#3754 )
(Dunqing)
- e95d8e3 isolated-declarations: Shrink span for arrow function that
needs an explicit return type (#3752 ) (Dunqing)
- df9971d isolated-declarations: Improve inferring the return type from
function (#3750 ) (Dunqing)
- 4aea2b1 isolated-declarations: Improve inferring the type of accessor
(#3749 ) (Dunqing)
- 9ea30c4 isolated-declarations: Treat AssignmentPattern as optional
(#3748 ) (Dunqing)
- dd540c8 minifier: Add skeleton for ReplaceGlobalDefines ast pass
(#3803 ) (Boshen)
- f3c3970 minifier: Add skeleton for RemoveDeadCode ast pass (#3802 )
(Boshen)
- 4fb90eb oxc: Export isolated-declarations (#3765 ) (Boshen)
- d5f6aeb semantic: Check for illegal symbol modifiers (#3838 ) (Don
Isaac)
- 01572f0 sourcemap: Impl `std::fmt::Display` for `Error` (#3902 )
(DonIsaac)
- 5501d5c transformer/typescript: Transform `import {} from "mod"` to
import `"mod"` (#3866 ) (Dunqing)
- 2a16ce0 traverse: Disable syntax check and disable build module record
(#3794 ) (Boshen)- d3cd3ea Oxc transform binding (#3896 ) (underfin)
### Bug Fixes
- 063cfde ast: Correct JSON serialization of `TSModuleBlock` (#3858 )
(overlookmotel)
- 66f404c ast: Fix JSON serialization of `BindingPattern` (#3856 )
(overlookmotel)
- 2766594 codegen: Print type parameters for MethodDefinition (#3922 )
(Dunqing)
- 27f0531 isolated-declarations: Private constructor reaching
unreachable (#3921 ) (Dunqing)
- 59ce38b isolated-declarations: Inferring of UnrayExpression
incorrectly (#3920 ) (Dunqing)
- 58e54f4 isolated-declarations: Report an error for parameters if they
are ObjectPattern or ArrayPattern without an explicit type (#3810 )
(Dunqing)
- cb8a272 isolated-declarations: Cannot infer nested `as const` (#3807 )
(Dunqing)
- d8ecce5 isolated-declarations: Infer BigInt number as `bigint` type
(#3806 ) (Dunqing)
- 4e241fc isolated-declarations: Missing `const` after transformed const
enum (#3805 ) (Dunqing)
- 683c7b0 isolated-declarations: Shouldn’t add declare in declaration
with export default (#3804 ) (Dunqing)
- 7d47fc3 isolated-declarations: Should stripe async and generator
keyword after transformed (#3790 ) (Dunqing)
- 8ce794d isolated-declarations: Inferring an incorrect return type when
there is an arrow function inside a function (#3768 ) (Dunqing)
- d29316a isolated-declarations: Transform incorrectly when there are
multiple functions with the same name (#3753 ) (Dunqing)
- bf1c250 isolated-declarations: False positives for non-exported
binding elements (#3751 ) (Dunqing)
- 275349a parser: Parse function type parameter name `accessor` (#3926 )
(Boshen)
- ef82c78 parser: Trailing comma is not allowed in
ParenthesizedExpression (#3885 ) (Dunqing)
- 13754cb parser: Change diagnostic to "modifier cannot be used here"
(#3853 ) (Boshen)
- 8c9fc63 semantic: Apply strict mode scope flag for strict mode TS
Modules (#3861 ) (overlookmotel)
- 99a40ce semantic: `export default foo` should have
`ExportLocalName::Default(NameSpan)` entry (#3823 ) (Boshen)
- 08fcfb3 transformer: Fix spans and scopes in TS enum transform (#3911 )
(overlookmotel)
- 17ad8f7 transformer: Create new scopes for new blocks in TS transform
(#3908 ) (overlookmotel)
- d76f34b transformer: TODO comments for missing scopes (#3837 )
(overlookmotel)
- e470731 transformer: TS transform handle when type exports first
(#3833 ) (overlookmotel)
- d774e54 transformer: TS transform generate do not copy statements
(#3832 ) (overlookmotel)
- ff1da27 transformer: Correct comment in example (#3831 )
(overlookmotel)
- 6dcc3f4 transformer: Fix TS annotation transform scopes (#3816 )
(overlookmotel)
- aea3e9a transformer: Correct spans for TS annotations transform
(#3782 ) (overlookmotel)
### Performance
- 92c21b2 diagnostics: Optimize string-buffer reallocations (#3897 )
(Luca Bruno)
- 4bf405d parser: Add a few more inline hints to cursor functions
(#3894 ) (Boshen)
- 10d1de5 semantic: Remove uneccessary allocation in builder (#3867 )
(DonIsaac)- 4f7ff7e Do not pass `&Atom` to functions (#3818 )
(overlookmotel)
### Refactor
- 6f26087 ast: Add comment about alternatives to `AstBuilder::copy`
(#3905 ) (overlookmotel)
- 442aca3 ast: Add comment not to use `AstBuilder::copy` (#3891 )
(overlookmotel)
- acf69fa ast: Refactor custom `Serialize` impls (#3859 ) (overlookmotel)
- 9e148e9 ast: Add line breaks (#3860 ) (overlookmotel)
- 363d3d5 ast: Add span field to the `BindingPattern` type. (#3855 )
(rzvxa)
- a648748 ast: Shorten code in AST builder (#3835 ) (overlookmotel)
- 1206967 ast: Reduce allocations in AST builder (#3834 ) (overlookmotel)
- 2f5d50e isolated-declarations: Remove `Modifiers` (#3847 ) (Boshen)
- 8027b1e minifier: Change prepass to ast_passes::remove_parens (#3801 )
(Boshen)
- a471e62 parser: Clean up `try_parse` (#3925 ) (Boshen)
- 3db2553 parser: Improve parsing of TypeScript type arguments (#3923 )
(Boshen)
- 4cf3c76 parser: Improve parsing of TypeScript types (#3903 ) (Boshen)
- 187f078 parser: Improve parsing of
`parse_function_or_constructor_type` (#3892 ) (Boshen)
- 97d59fc parser: Move code around for parsing `Modifiers` (#3849 )
(Boshen)
- 5ef28b7 transformer: Shorten code (#3912 ) (overlookmotel)
- d9f268d transformer: Shorten TS transform code (#3836 ) (overlookmotel)
- 21b0d01 transformer: Pass ref to function (#3781 ) (overlookmotel)
- 7c44703 transformer: Remove needless `pub` on TS enum transform
methods (#3774 ) (overlookmotel)
- 22c56d7 transformer: Move TSImportEqualsDeclaration transform code
(#3764 ) (overlookmotel)
- cd56aa9 transformer: Simplify TS export assignment transform (#3762 )
(overlookmotel)
- 512740d transformer: Move and simplify TS enum transform entry point
(#3760 ) (overlookmotel)
- 1061baa traverse: Separate `#[scope]` attr (#3901 ) (overlookmotel)
- fcd21a6 traverse: Indicate scope entry point with
`scope(enter_before)` attr (#3882 ) (overlookmotel)
- 24979c9 traverse: Use camel case props internally (#3880 )
(overlookmotel)
- 2045c92 traverse: Improve parsing attrs in traverse codegen (#3879 )
(overlookmotel)- d6437fe Clean up some usages of `with_labels` (#3854 )
(Boshen)
Co-authored-by: Boshen <Boshen@users.noreply.github.com>
2024-06-27 20:38:31 +08:00
Boshen
99a40ce6ac
fix(semantic): export default foo should have ExportLocalName::Default(NameSpan) entry ( #3823 )
2024-06-22 11:09:23 +00:00
github-actions[bot]
1b3cd6c24d
Release crates v0.15.0 ( #3743 )
...
## [0.15.0] - 2024-06-18
- 0537d29 cfg: [**BREAKING**] Move control flow to its own crate.
(#3728 ) (rzvxa)
- 5c38a0f codegen: [**BREAKING**] New code gen API (#3740 ) (Boshen)
- 4bce59d semantic/cfg: [**BREAKING**] Re-export `petgraph` as
`control_flow::graph`. (#3722 ) (rzvxa)
- 534242a codegen: [**BREAKING**] Remove
`CodegenOptions::enable_typescript` (#3674 ) (Boshen)
- 0578ece ast: [**BREAKING**] Remove
`ExportDefaultDeclarationKind::TSEnumDeclaration` (#3666 ) (Dunqing)
### Features
- 5a99d30 codegen: Improve codegen formatting (#3735 ) (Boshen)
- bf9b38a codegen: Improve codegen formatting (#3731 ) (Boshen)
- 4a004e2 codegen: Print TSImport remaining fields (#3695 ) (Dunqing)
- a56cb1b codegen: Print accessibility for MethodDefinition (#3690 )
(Dunqing)
- 38a75e5 coverage: Improve codegen (#3729 ) (Boshen)
- 750a534 coverage: Transformer idempotency test (#3691 ) (Boshen)
- ee627c3 isolated-declarations: Create unique name for `_default`
(#3730 ) (Dunqing)
- 81e9526 isolated-declarations: Inferring set accessor parameter type
from get accessor return type (#3725 ) (Dunqing)
- 77d5533 isolated-declarations: Report errors that are consistent with
typescript. (#3720 ) (Dunqing)
- 8f5655d linter: Add eslint/no-useless-constructor (#3594 ) (Don Isaac)
- 046ff3f linter/eslint: Add `no_unreachable` rule. (#3238 ) (rzvxa)
- 0b8098a napi: Isolated-declaration (#3718 ) (Boshen)
- 527bfc8 npm/oxc-transform: Setup npm/oxc-transform and publish
(Boshen)
- d65c652 parser: Display jsx mismatch error, e.g. `<Foo></Bar>` (#3696 )
(Boshen)
- 9c31ed9 semantic/cfg: Propagate unreachable edges through subgraphs.
(#3648 ) (rzvxa)
- d9c5b33 semantic/cfg: Add `Condition` instruction. (#3567 ) (Ali
Rezvani)
- f2dfd66 semantic/cfg: Add iteration instructions. (#3566 ) (rzvxa)
- 910193e transformer-dts: Report error for super class (#3711 )
(Dunqing)
- 413d7be transformer-dts: Transform enum support (#3710 ) (Dunqing)
- 35c382e transformer-dts: Remove type annotation from private field
(#3689 ) (Dunqing)
- 0e6d3ce transformer-dts: Report error for async function and generator
(#3688 ) (Dunqing)
- b22b59a transformer-dts: Transform namespace support (#3683 ) (Dunqing)
- 4f2db46 transformer-dts: `--isolatedDeclarations` dts transform
(#3664 ) (Dunqing)
### Bug Fixes
- 2158268 ast: Incorrect visit order in function (#3681 ) (Dunqing)
- da1e2d0 codegen: Improve typescript codegen (#3708 ) (Boshen)
- f1b793f isolated-declarations: Function overloads reaching unreachable
(#3739 ) (Dunqing)
- 0fbecdc isolated-declarations: Should be added to references, not
bindings (#3726 ) (Dunqing)
- 8f64d99 minifier: Respect `join_vars: false` option (#3724 )
(mysteryven)
- 70fc69b semantic: Add Eq to CtxFlags (#3651 ) (Yuji Sugiura)
- 7a58fec semantic/cfg: Issue in unlabeled `Ctx`s. (#3678 ) (rzvxa)
- abd6ac8 semantic/cfg: Discrete finalization path after `NewFunction`s.
(#3671 ) (rzvxa)
- e148a32 semantic/cfg: Correct unreachability propagation in
try-finally. (#3667 ) (Ali Rezvani)
- 59666e0 transformer: Do not rename accessible identifier references
(#3623 ) (Dunqing)
- 90743e2 traverse: Change visit order for `Function` (#3685 )
(overlookmotel)
### Performance
- 2717a1a semantic/cfg: Lower the visits in
`neighbors_filtered_by_edge_weight`. (#3676 ) (rzvxa)
### Refactor
- fa7a6ba codegen: Add `gen` method to ast nodes (#3687 ) (Boshen)
- 09b92b6 codegen: Move `gen_ts` into `gen` to make searching things
easier (#3680 ) (Boshen)
- 3c59735 isolated-declarations: Remove `TransformDtsCtx` (#3719 )
(Boshen)
- 815260e isolated-declarations: Decouple codegen (#3715 ) (Boshen)
- 7ec44f8 semantic: Rename `cfg` macro to `control_flow`. (#3742 )
(rzvxa)
- d8ad321 semantic: Make control flow generation optional. (#3737 )
(rzvxa)
- a94a72d semantic: Expose 1 checker function instead of 2 (#3694 )
(Boshen)
- bd8d115 semantic/cfg: Remove unused types. (#3677 ) (rzvxa)
- f702fb9 semantic/cfg: Cleanup control flow and it's builder. (#3650 )
(rzvxa)
- 4f16664 transformer_dts: Create a `Program` for codegen (#3679 )
(Boshen)
Co-authored-by: Boshen <Boshen@users.noreply.github.com>
2024-06-19 01:15:55 +08:00
Boshen
051ceb6539
chore: improve some format by running cargo +nightly fmt
2024-06-19 00:48:30 +08:00
github-actions[bot]
95e0571c2e
Release crates v0.14.0 ( #3643 )
...
## [0.14.0] - 2024-06-12
### Breaking
* fix(codegen)!: remove the unecessary 4th argument from `Codegen::new`
(#3640 )
* feat(ast)!: make `Trivias` clonable by adding `Arc` (#3638 )
### Features
- f6d9ca6 linter: Add `eslint/sort-imports` rule (#3568 ) (Wang Wenzhe)
- 129f91e span: Port over more methods from TextRange (#3592 ) (Don
Isaac)
### Bug Fixes
- f8f6d33 ast: Correct `visited_node` attr for strict mode of arrow fns
(#3635 ) (overlookmotel)
- e6ad3fb diagnostics: Do not print ansi color codes in non-TTYs (#3624 )
(Boshen)
- d65202d span: Correct doc comments (#3608 ) (overlookmotel)
- 35e267b transformer: Arrow function transform use UIDs for `_this`
vars (#3634 ) (overlookmotel)
- 39bdebc transformer: Arrow func transform maintain scope ID (#3633 )
(overlookmotel)
- 5cb7e6a transformer: Arrow func transform use correct spans (#3630 )
(overlookmotel)
- 0c4ccb4 transformer: Arrow function transform alter `</this>` (#3627 )
(overlookmotel)
- 8d237c4 transformer: JSX source calculate correct column when Unicode
chars (#3615 ) (overlookmotel)
- 9e8f4d6 transformer: Do not add `__source` for generated nodes (#3614 )
(overlookmotel)
- 0fb4c35 transformer: Use UID for JSX source filename var (#3612 )
(overlookmotel)
### Performance
- 3a59294 transformer: React display name transform reduce Atom
allocations (#3616 ) (overlookmotel)
- f4c1389 transformer: Create `Vec` with capacity (#3613 )
(overlookmotel)
### Refactor
- 0f92521 ast: Replace recursion with loop (#3626 ) (overlookmotel)
- 08f1010 ast: Make `AstBuilder` `Copy` (#3602 ) (overlookmotel)
- 84304b4 linter: Add a `ctx.module_record()` method (#3637 ) (Boshen)
- f98f777 linter: Add rule fixer (#3589 ) (Don Isaac)
- e90e6a2 minifier: Make `Prepass` `Copy` (#3603 ) (overlookmotel)
- 7d61832 semantic: Pass `Rc` by value (#3586 ) (overlookmotel)
- 89bcbd5 transformer: Move `BoundIdentifier` into helpers (#3610 )
(overlookmotel)
- 5793ff1 transformer: Replace `&’a Trivias` with `Rc<Trivias>` (#3580 )
(Dunqing)
- 509871f transformer: Comment for unimplemented `spec` option in arrow
fns transform (#3618 ) (overlookmotel)
- 4b2e3a7 transformer: Fix indentation (#3617 ) (overlookmotel)
- 3467e3d transformer: Remove outdated comment (#3606 ) (overlookmotel)
- a799225 transformer: Flatten file structure for React transform
(#3604 ) (overlookmotel)
- 70f31a8 transformer: Reduce branching in JSX transform (#3596 )
(overlookmotel)
- 3ae567d transformer: Remove dead code (#3588 ) (overlookmotel)
- 60cbdec traverse: `generate_uid_in_root_scope` method (#3611 )
(overlookmotel)
Co-authored-by: Boshen <Boshen@users.noreply.github.com>
2024-06-12 17:52:41 +08:00
github-actions[bot]
6bdd74c476
Release crates v0.13.5 ( #3584 )
...
## [0.13.5] - 2024-06-08
### Bug Fixes
- 48bb97e traverse: Do not publish the build script (Boshen)
Co-authored-by: Boshen <Boshen@users.noreply.github.com>
2024-06-08 16:44:50 +08:00
Boshen
060819894d
chore: crates should only publish src and examples directory
2024-06-08 16:35:16 +08:00
github-actions[bot]
d215e3d906
Release crates v0.13.4 ( #3582 )
...
## [0.13.4] - 2024-06-07
### Features
- 5c8e16c coverage: Second transformer build does not print typescript
(#3561 ) (Dunqing)
- 646b993 coverage/transformer: Handle @jsx option (#3553 ) (Dunqing)
- a939ddd transformer/typescript: Remove more typescript ast nodes
(#3563 ) (Dunqing)
- e8a20f8 transformer/typescript: Remove typescript ast nodes (#3559 )
(Dunqing)
- ee9a215 transformer/typescript: Handle namespace directive correctly
(#3532 ) (Dunqing)
### Bug Fixes
- affb2c8 codegen: Print indentation before directive (#3512 ) (Dunqing)
- f6939cb transformer: Store `react_importer` in `Bindings` in JSX
transform (#3551 ) (overlookmotel)
- 7982b93 transformer: Correct spans for JSX transform (#3549 )
(overlookmotel)
- c00598b transformer: JSX set `reference_id` on refs to imports (#3524 )
(overlookmotel)
### Performance
- 37cdc13 transformer: Faster checks if JSX plugin enabled (#3577 )
(overlookmotel)
- 9f467b8 transformer: Avoid fragment update where possible (#3535 )
(overlookmotel)
- ac394f0 transformer: JSX parse pragma only once (#3534 )
(overlookmotel)
### Documentation
- 1d3c0d7 span: Add doc comments to `oxc_span::Span` (#3543 ) (Don Isaac)
### Refactor
- f2113ae transformer: Reduce cloning and referencing `Rc`s (#3576 )
(overlookmotel)
- 0948124 transformer: Pass `Rc`s by value (#3550 ) (overlookmotel)
- e4d74ac transformer: Remove `update_fragment` from JSX transform
(#3541 ) (overlookmotel)
- 73b7864 transformer: Combine import and usage in JSX transform (#3540 )
(overlookmotel)
- 6978269 transformer/typescript: Replace reference collector with
symbols references (#3533 ) (Dunqing)
Co-authored-by: Boshen <Boshen@users.noreply.github.com>
2024-06-07 17:41:11 +08:00
Boshen
1dbc23417d
chore: regenerate changelogs with commit id and author
2024-06-07 01:22:28 +08:00
Boshen
769227b7b4
chore: regenerate changelogs
2024-06-06 15:51:53 +08:00
Boshen
509ed2bcf3
ci: update prepare release crates; regenerate the changelogs
2024-06-06 14:28:51 +08:00
Boshen
0674604d7a
chore: regenerate changelog
2024-06-06 01:29:38 +08:00
overlookmotel
c00598b9d4
fix(transformer): JSX set reference_id on refs to imports ( #3524 )
...
Set `reference_id` for references to new imported bindings. e.g. `_jsx`
in `_jsx(Foo, {})` where JSX transform has inserted `import {jsx as
_jsx} from "react/jsx-runtime";`.
2024-06-05 10:57:05 +08:00
github-actions[bot]
d48e62aca4
Publish crates v0.13.3 ( #3527 )
...
Automated Release
Co-authored-by: Boshen <Boshen@users.noreply.github.com>
2024-06-04 18:02:40 +08:00
github-actions[bot]
079d42f68b
Release crates v0.13.2 ( #3513 )
...
Co-authored-by: Boshen <Boshen@users.noreply.github.com>
2024-06-03 12:40:53 +08:00
Boshen
86beca5379
Release crates v0.13.1
2024-05-22 16:50:30 +08:00
Boshen
e2dd8ac8fc
feat(syntax): export is_reserved_keyword and is_global_object method ( #3384 )
2024-05-22 04:58:04 +00:00
Boshen
1e84644220
chore: update toml format
2024-05-21 22:15:47 +08:00
Boshen
bd8a0ddb7f
feat(linter): no-barrel-file ( #3275 )
...

2024-05-16 07:54:09 +00:00
Boshen
c395f8641e
Release crates v0.13.0
2024-05-14 23:14:15 +08:00
Dunqing
b4fa27a2ee
fix(transformer): do no add __self when the jsx is inside constructor ( #3258 )
2024-05-14 16:12:49 +01:00
overlookmotel
4e20b04acc
fix(traverse): create scope for function nested in class method ( #3234 )
...
Fixes a bug in #3229 .
The logic to prevent a duplicate scope being created for a `Function` which is a `MethodDefinition` would also stop a scope being created for inner function in:
```rs
class X {
foo() {
function bar() {}
}
}
```
or
```rs
class X {
foo( bar = function() {} ) {}
}
```
This PR fixes that. This change also allows removing `ScopeFlags::Method` which #3229 added.
2024-05-11 12:07:00 +00:00
overlookmotel
46c02aee61
feat(traverse): add scope flags to TraverseCtx ( #3229 )
...
Add scope flags to `TraverseCtx`.
Closes #3189 .
`walk_*` functions build a stack of `ScopeFlags` as AST is traversed, and they can be queried from within visitors with `ctx.scope()`, `ctx.ancestor_scope()` and `ctx.find_scope()`.
The codegen which generates `walk_*` functions gets the info about which AST types have scopes, and how to check for strict mode from the `#[visited_node]` attrs on AST type definitions in `oxc_ast`.
A few notes:
Each scope inherits the strict mode flag from the level before it in the stack, so if you need to know "am I in strict mode context here?", `ctx.scope().is_strict_mode()` will tell you - no need to travel back up the stack to find out.
Scopes do *not* inherit any other flags from level before it. So `ctx.scope()` in a block nested in a function will return `ScopeFlags::empty()` not `ScopeFlags::Function`.
I had to add an extra flag `ScopeFlags::Method`. The reason for this is to deal with when a `Function` is actually a `MethodDefinition`, and to avoid creating 2 scopes in this case. The principle I'm trying to follow is to encode as little logic in the codegen as possible, as it's rather hidden away. Instead the codegen follows a standard logic for every node, guided by attributes which are visible next to the types in `oxc_ast`. This hopefully makes how `Traverse`'s visitors are generated less mysterious, and easier to change.
The case of `Function` within `MethodDefinition` is a weird one and would not be possible to implement without encoding a magic "special case" within the codegen without this extra `ScopeFlags::Method` variant. Its existence does not alter the operation of any other code in Oxc which uses `ScopeFlags`.
In my view `ScopeFlags` might benefit from a little bit of an overhaul anyway. I believe we could pack more information into the bits and make it more useful.
2024-05-11 04:39:42 +00:00
Boshen
f1ccbd4856
feat(syntax): add ToJsInt32 trait for f64 ( #3132 )
2024-04-29 21:13:04 +08:00
Boshen
870d11f1bb
feat(syntax): add ToJsString trait for f64 ( #3131 )
2024-04-29 21:00:04 +08:00
Boshen
a8af5de8f5
refactor(syntax): move number related functions to number module ( #3130 )
2024-04-29 18:54:35 +08:00
Boshen
ae6561308c
refactor(syntax): use FxHashMap for ModuleRecord::request_modules ( #3124 )
...
closes #3121
The ordering is not important here.
2024-04-29 03:37:34 +00:00
Boshen
559bca86c5
Release crates v0.12.5
2024-04-22 12:52:17 +08:00
Ali Rezvani
e6d11c6190
feat(syntax): module graph visitor. ( #3062 )
...
I've tried too hard to make it into a full-fledged depth first iterator, But had no success with it; It is the next best thing that I could've thought of.
Provides a way to visit the module graph from a ModuleRecord as its entry point.
2024-04-22 10:10:27 +08:00
Boshen
1f7033e7ab
fix(semantic): correctly resolve identifiers inside parameter initializers ( #3046 )
...
close : #2644
This fixes function parameters. I think we need an extra AST node to fix catch parameters, which will be the next PR.
2024-04-21 23:38:31 +08:00
overlookmotel
1249c6c326
refactor(ast): implement same traits on all fieldless enums ( #3031 )
...
Implement same traits on all AST fieldless enums, for consistency. Just
a little bit of tidying.
2024-04-20 01:53:48 +08:00
Boshen
a05c4e39b8
Release crates v0.12.4
2024-04-19 16:40:05 +08:00
Boshen
614f73b66c
Release crates v0.12.3
2024-04-11 16:18:17 +08:00
Boshen
09452659e2
Release crates v0.12.2
2024-04-08 11:13:13 +08:00
Don Isaac
1ea24ea0a7
fix(semantic): symbols inside functions and classes incorrectly flagged as exported ( #2896 )
...
# What This PR Does
Symbols declared inside exported functions and classes were being
incorrectly flagged with `SymbolFlags::Export`.
For example,
```ts
export function foo<T>(a: T) {
let b = String(a)
return b
}
```
`T`, `a`, and `b` were all flagged as exported.
## Further Work
It doesn't seem like exported enums and interfaces are being included in
`ModuleRecord`. Am I looking in the wrong place, or are they actually
missing?
2024-04-05 23:01:27 +08:00
Boshen
366a7fb0d4
Release crates v0.11.2
2024-04-03 19:36:54 +08:00
Boshen
54f7cd3978
Release crates v0.11.1
2024-04-03 16:57:52 +08:00
Boshen
23d3c4e0a4
chore: add changelogs via git cliff ( #2878 )
...
This is generated alongside https://github.com/oxc-project/release-oxc
2024-04-01 20:04:48 +08:00
Boshen
7710d8caf1
feat(transformer): add compiler assumptions ( #2872 )
...
closes #2869
2024-03-31 02:04:21 +00:00
Boshen
31ed532b79
Release crates v0.11.0
2024-03-30 13:54:53 +08:00
Dunqing
df628289ff
fix(linter/import): ignore export declaration in no-duplicates ( #2863 )
2024-03-30 12:57:43 +08:00
Dunqing
1b5e544a36
refactor(semantic): distinguish whether requested_modules is type imports/exports ( #2848 )
2024-03-29 19:52:30 +08:00
Dunqing
712b3d2a11
feat(semantic): distinguish type imports in ModuleRecord ( #2785 )
...
I am not sure moving `ImportOrExportKind` to `oxc-syntax` is a good
solution.
2024-03-23 21:38:17 +08:00
overlookmotel
75226f3b4a
chore: silence erroneous RA warnings for Tsify ( #2731 )
2024-03-15 12:42:12 +00:00
Boshen
a5ddb5b452
Release crates v0.10.0
2024-03-14 18:23:34 +08:00
Boshen
697b6b70c0
feat: merge features serde and wasm to serialize ( #2716 )
...
This PR merges the previous confusing features `serde` and `wasm` into a
single `serialize` feature.
We'll eventually do serialize + type information for both wasm and napi
targets.
`oxc_macros` is removed from `oxc_ast`'s dependency because it requires
`syn` and friends, which goes against our policy ["Third-party
dependencies should be
minimal."](https://oxc-project.github.io/docs/contribute/rules.html#development-policy )
2024-03-14 17:13:12 +08:00
overlookmotel
89e8d1526f
refactor: derive SerAttrs on all AST types ( #2698 )
...
Add `SerAttrs` derive to a few types that I missed out in #2669 .
2024-03-13 00:14:04 +00:00
Boshen
366a87975d
feat(linter): resolve ESM star exports ( #2682 )
2024-03-11 21:43:11 +08:00
overlookmotel
3c1e0db53f
refactor: reduce cfg_attr boilerplate with SerAttrs derive ( #2669 )
...
Closes #2641 .
Also added `tsify` attribute to the `SerAttrs` derive macro, so `#[cfg_attr(feature = "wasm", tsify(...))]` can also be reduced to `#[tsify(...)]`.
2024-03-11 13:38:24 +08:00
overlookmotel
cba1e2f338
refactor(ast): import Tsify to shorten code ( #2665 )
...
Pure refactor. Import `tsify::Tsify` in files that use it, so then shorten a load of:
```diff
- #[cfg_attr(feature = "wasm", derive(tsify::Tsify))]
+ #[cfg_attr(feature = "wasm", derive(Tsify))]
```
2024-03-11 12:37:10 +08:00
overlookmotel
d76ee6b2db
refactor: "wasm" feature enable "serde" feature ( #2639 )
...
Make `wasm` feature also enable `serde` feature. This allows shortening
a lot of `#[cfg_attr]`s.
As discussed in
https://github.com/oxc-project/oxc/pull/2638#issuecomment-1984066757 .
2024-03-08 10:06:49 +08:00
overlookmotel
6b5723cdbe
refactor(ast): shorten manual TS defs ( #2638 )
...
Does the same thing, just (in my opinion) a little bit more readable.
2024-03-08 00:53:51 +08:00
overlookmotel
0646bf34fa
refactor: rename CompactString to CompactStr ( #2619 )
...
Preparatory step for #2620 .
This PR purely changes names of types and methods:
* `CompactString` -> `CompactStr`
* `Atom::to_compact_string` -> `to_compact_str`
* `Atom::into_compact_string` -> `into_compact_str`
Have split this into a separate PR as the diff is large, but it does absolutely nothing but renaming (I've checked the whole diff twice, so feel free not to check it again!). This should make it easier to see the content of the substantive change in #2620 .
2024-03-06 12:24:23 +08:00
Boshen
cca6eb073c
Release crates v0.9.0
2024-03-05 15:57:31 +08:00
Boshen
d41dcc316e
feat(linter): remove all commonjs logic for import plugin ( #2537 )
2024-02-28 18:13:44 +08:00
Boshen
be6b8b7ce6
[BREAKING CHANGE] Change Atom to Atom<'a> to make it safe ( #2497 )
...
Part of #2295
This PR splits the `Atom` type into `Atom<'a>` and `CompactString`.
All the AST node strings now use `Atom<'a>` instead of `Atom` to signify
it belongs to the arena.
It is now up to the user to select which form of the string to use.
This PR essentially removes the really unsafe code
93742f89e9/crates/oxc_span/src/atom.rs (L98-L107)
which can lead to

2024-02-26 19:34:40 +08:00
Boshen
4fabe66621
Publish crates v0.8.0
2024-02-26 19:01:51 +08:00
Boshen
fba66dcc75
fix(linter): improve import/no-named-as-default ( #2494 )
2024-02-25 21:24:08 +08:00
Boshen
f64c7e04a3
feat(linter): handle cjs module.exports.foo = bar and exports.foo = bar ( #2492 )
2024-02-24 23:54:43 +08:00
Boshen
3e1794d6c0
feat(syntax): implement Debug for ModuleRecord ( #2488 )
2024-02-24 17:34:42 +08:00
Andrew McClenaghan
6b3b260dcc
feat(Codegen): Improve codegen ( #2460 )
...
This gets all the new TS types working to the same level TS output was
before and fixes a bunch of other codegen
---------
Co-authored-by: Boshen <boshenc@gmail.com>
2024-02-21 14:41:57 +08:00
Dunqing
950298d960
feat(semantic): add static property, ElementKind::Getter, ElementKind::Setter in ClassTable ( #2445 )
2024-02-20 13:07:48 +08:00
Dunqing
67d7a4677f
refactor(linter): get arrow expression by scope_id in no_render_return_value ( #2424 )
2024-02-17 21:06:28 +08:00
Boshen
d6d921ea1f
Publish crates v0.7.0
2024-02-09 23:01:12 +08:00
Dunqing
540b2a0396
fix(semantic): remove unnecessary SymbolFlags::Import ( #2311 )
2024-02-05 14:16:29 +08:00
Boshen
d2b304b1f8
Publish crates v0.6.0
2024-02-03 22:35:30 +08:00
Boshen
589fd0cdd1
chore: omit warning for unused TS_APPEND_CONTENT
2024-02-01 14:07:40 +08:00
Dunqing
f673e41539
feat(ast): remove serde skip for symbol_id and reference_id ( #2220 )
...
We want to see symbol_id and reference_id in ast
2024-01-30 21:03:05 +08:00
Nicholas Roberts
cd5026c015
feat(ast): TypeScript definition for wasm target ( #2158 )
...
Closes #2151
2024-01-30 15:43:03 +08:00
overlookmotel
0dc1804a52
refactor(syntax): don't re-export unicode_id_start
2024-01-23 11:05:17 +08:00
overlookmotel
bc7ea0bedb
refactor(parser): make is_identifier methods consistent
2024-01-23 11:05:17 +08:00
overlookmotel
27aaff2bef
refactor(syntax): ASCII tables static not const ( #2128 )
...
A small nit: `ASCII_CONTINUE` is used in multiple places, so it's
preferable that it's a `static` not a `const` so it only gets included
in the binary once, rather than once for each usage.
Only makes a tiny difference on benchmarks (~0.1 ms), but change seems
worthwhile anyway just to be more "good practice".
2024-01-22 21:49:54 +08:00
overlookmotel
4f59c4fdfc
refactor(syntax): reformat identifier byte tables ( #2111 )
...
Not a substantive change, just reformatting the ASCII byte tables in
`oxc_syntax`.
In my opinion, this makes them easier to read.
2024-01-22 13:45:12 +08:00
Wenzhe Wang
29dc5e69ff
fix(codegen): add parenthesis in binary expression by precedence ( #2067 )
...
related ESBuild code:
f5f8ff895c/internal/js_printer/js_printer.go (L3348-L3371)
2024-01-17 23:01:42 +08:00
Dunqing
ead4e8df1f
feat(transformer/typescript): remove import if only have type reference ( #2001 )
2024-01-13 08:52:14 +00:00
Boshen
61f37ea973
Publish crates v0.5.0
2024-01-12 23:33:47 +08:00
Dunqing
3b4fe0edfd
feat(semantic): allow reserved keyword defined in ts module block ( #1907 )
...
https://www.typescriptlang.org/play?target=99#code/PTAEAEBcEMCcHMCmkBcpEGcB2iAekAoECAWwHsATAVwBtE1MAmABkcYBpMd8CiwAHKgCNQAYzJYMkUAGUAKgCUAkgGE5AfQCyAeQAiAUXUA5AIKb9MtDOQAeAGQByKdEgBLUaCmwAfKAC8oPwAFgBm6hjIAISgAN58oAkJAESuJPx0JIhYkBhJ7PGJoCnZiLAh0KKIeQWJSXSQ1cSFSfwVANbQSI1gzfywrgBuLlX5TbV9ZJCIolMU3YVFgkI07vPNzm6ia7UAnq6INHOjYAC+ANy8ePxksNIx5wQU0zRwiKBY0JkYrZWgIWRkWKgAgJcSSaSpdKITLZDBoaBYHZnYGgiRSQLCFaieGI5EgsRoiElMoVeigBFIlGgIawUD1HGU-Fg9E-DpIBl41HgwL9IZTDlMwk8ybTWYCrnojbucUE7l7A4UAUnAhAA
2024-01-06 12:56:27 +08:00
Dunqing
6c5b22f728
refactor(semantic): improve ClassTable implmention and merge properties and methods to elements ( #1902 )
2024-01-05 18:38:51 +08:00
Dunqing
f1b433b126
feat(playground): visualize symbol ( #1886 )
...
close: https://github.com/oxc-project/oxc/issues/1048
2024-01-04 15:36:31 +08:00
Dunqing
b9bdf361e6
feat(semantic): improve check super implementation, reduce access nodes ( #1827 )
...
This improves the performance at which we can check that super is in a non-class.
2023-12-27 22:36:28 +08:00
Dunqing
ca04312130
feat(semantic): add ClassTable ( #1793 )
2023-12-25 23:59:35 +08:00
Wenzhe Wang
90524c83f7
feat(linter): add eslint-plugin-import(export) rule ( #1654 )
2023-12-13 23:12:45 +08:00
Boshen
8347e2225c
Release crates v0.4.0
2023-12-08 17:20:37 +08:00
Boshen
da87b9b29e
feat(prettier): binaryish expressions with parens ( #1597 )
2023-12-01 13:52:22 +08:00
Boshen
1bd1c5b51b
feat(prettier): check parens for (let)[a] = 1 ( #1585 )
2023-11-29 21:57:59 +08:00
Dunqing
f19032e102
feat(prettier): support quoteProps option in PropertyKey ( #1578 )
2023-11-29 18:32:30 +08:00
Boshen
6670d94708
chore(rust): remove unnecessary clippy::non_upper_case_globals ( #1557 )
2023-11-27 14:31:38 +08:00
JonaAnders
08164b0e18
refactor(parser) Updated comments mentioning the ecma specification section 12.x ( #1496 )
...
The ECMA specification seems to added the "Tokens" section to the
specification as 12.6. This pushed all the other sections down,
resulting in e.g. former 12.6 now being 12.7. Comments in the parser
mention this part of the specification. All the mentions of section
12.6+ therefor are outdated now. This pull request tries to fix that by
updating all the comments.
2023-11-22 19:29:04 +08:00
Boshen
1a576f60a8
refactor(rust): move to workspace lint table ( #1444 )
2023-11-20 14:38:10 +08:00
Jon Surrell
cb804d3cd2
Add base to AST BigintLiteral ( #1416 )
2023-11-19 11:11:19 +08:00
Boshen
ba603cebb9
Release Oxc v0.3.0
2023-11-06 19:11:16 +08:00
Boshen
1051f15005
feat(transformer/jsx): escape xhtml in jsx attributes ( #1088 )
2023-10-29 15:16: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
1661385c1a
feat(semantic): check non-simple lhs expression of assignment expression ( #994 )
2023-10-14 23:40:10 +08:00
Boshen
55b2f031df
feat(minifier): partially re-enable minifier ( #963 )
...
closes #949
closes #950
closes #951
All minifier tests are disable from this PR.
We are going to fix the compilation errors first, then the behavioral
errors.
2023-10-08 11:06:42 +08:00
Boshen
817f8c295e
ci: turn off doc tests because they are slow to compile and run ( #961 )
2023-10-07 17:01:23 +08:00
Boshen
5863f8ffdb
feat(transformer): logical assignment operators ( #923 )
2023-09-16 23:54:53 +08:00
Boshen
38bbc96fb0
Release oxc v0.2.0
2023-09-14 23:41:44 +08:00
Wenzhe Wang
7a9f821b1d
chore: fix typo ( #889 )
2023-09-10 21:44:09 +08:00
Boshen
9ff12a9696
feat(linter): eslint-plugin-import/no-self-import ( #878 )
...
closes #440 #441
2023-09-10 00:12:26 +08:00
Boshen
75d928a20d
feat(syntax): add loaded_modules to ModuleRecord
2023-09-07 22:56:09 +08:00
Boshen
93adc9b9c2
Release oxc v0.1.3
2023-09-03 12:22:05 +08:00
Boshen
37bf4c4421
Release oxc v0.1.2
2023-09-03 11:30:44 +08:00
Boshen
1f27426570
Release crates as v0.1.1
2023-08-26 17:53:11 +08:00
Boshen
12798e075f
refactor: improve code coverage a little bit
2023-08-25 23:07:14 +08:00
Yunfei He
e7c2313817
feat(ast): add SymbolId and ReferenceId ( #755 )
...
Closes #510
2023-08-19 18:09:47 +08:00
Boshen
fdf288c685
refactor: improve code coverage in various places ( #721 )
2023-08-11 15:17:49 +08:00
EliLichtblau
5e54bd0537
Adding types to the symbol table - consistent export type sample rule implemented ( #667 )
...
Fixes 11 TS conformance tests and 18 babel tests.
Adds types to the symbol table functionally conformant to TS behavior
but symbol flags implemented slightly differently.
Symbol redeclaration check is also not entirely conformant but fixing
this seems like a separate PR.
For testing purposes - consistent-export-type was also implemented
(WIP).
2023-07-31 12:33:47 +08:00
阿良仔
e090b560be
feat(minifier): initialize conditions folding ( #658 )
...
related: #401
2023-07-30 01:02:32 +08:00
Don Isaac
6628fc8d9c
perf(linter): reduce mallocs ( #654 )
...
Reduces mallocs via `clones()` (particularly of `Atom`s), and vec
allocations.
Affects the following rules:
- [x] eslint/no-dupe-keys
- [x] eslint/no-global-assign
- [x] eslint/no-loss-of-precision _(only partially optimized, needs more
work later)_
~- [ ] typescript-eslint/ajacent-overload-signatures~ (_will be
addressed in following pr_)
2023-07-29 12:02:53 +08:00
Boshen
1012d8300c
chore: release crates as v0.1.0
2023-07-27 13:54:17 +08:00
Boshen
d587065436
chore(rust): update crate info, add minimal rust-version, add categories
2023-07-27 13:33:18 +08:00
Boshen
b34ef4f07a
chore: reformat
2023-07-27 13:11:46 +08:00
Boshen
2e32140450
publish: bump all crates to v0.0.7
2023-07-06 14:27:13 +08:00
Boshen
19c68c8c57
chore(Cargo): change how crates are version and published
...
Let's publish everything under `oxc` instead of individual crates
2023-07-06 14:14:29 +08:00
Boshen
8aba8bcbb5
feat(oxc): a single oxc crate ( #522 )
2023-07-06 13:35:25 +08:00
Boshen
e25f6e2dd4
chore(rust): rust cargo fmt and fix clippy warnings
2023-07-04 15:41:30 +08:00
Boshen
17a73b1eef
refactor(ast): move ModuleRecord to oxc_syntax
2023-07-03 22:54:27 +08:00
Boshen
c5402c1cae
feat(linter): implement no-import-assign (nursery)
2023-07-01 11:20:31 +08:00
Yagiz Nizipli
3656802fd4
feat: add eslint no-setter-return rule ( #434 )
...
Co-authored-by: Boshen <boshenc@gmail.com>
2023-06-24 22:08:41 +08:00
Boshen
d30735677b
refactor(semantic): merge semantic2 crate into semantic crate ( #460 )
2023-06-19 20:20:59 +08:00
Boshen
0dc6e025a1
refactor(semantic): move ScopeId and ScopeFlags to oxc_syntax
2023-06-12 21:10:38 +08:00
Boshen
dcb38f2277
refactor(semantic): move SymbolId and SymbolFlags to oxc_syntax
2023-06-12 20:55:16 +08:00
Boshen
f8125af850
feat(minimizer): print parentheses
2023-06-01 22:45:26 +08:00
Boshen
c01df484db
refactor(hir,syntax): define Precedence for hir expressions
2023-05-29 14:15:14 +08:00
Boshen
4706427575
refactor(syntax): move expression precedence from parser
2023-05-29 12:25:22 +08:00