Dunqing
ba385fc9c1
fix(codegen): panic occurred when printing the comment of the right parenthesis ( #6593 )
...
fix: https://github.com/oxc-project/monitor-oxc/actions/runs/11349185798/job/31564783192
It's hard to add a test for this because I haven't figured out caused by which plugin
2024-10-15 16:23:43 +00:00
Dunqing
e7c89a596b
test(codegen): uncomment passed tests that are related to trailing comments ( #6589 )
...
Just uncomment them and replace whitespace with `\t`
2024-10-15 16:23:41 +00:00
overlookmotel
c0e9d7eb77
refactor(codegen)!: Codegen::into_source_text consume Codegen ( #6539 )
...
Breaking change. `Codegen::into_source_text` consume `Codegen`, instead of taking the `CodeBuffer` and substituting an empty one.
Keeping the `Codegen` alive seems unintuitive, as its state is then out of sync. Consuming the `CodeBuffer` is also marginally cheaper.
2024-10-14 01:09:03 +00:00
overlookmotel
7e909a7e6c
docs(codegen): fix example for CodeBuffer::print_ascii_bytes ( #6535 )
...
Fix example and add a test.
2024-10-14 01:09:02 +00:00
overlookmotel
77f3a1a9dd
perf(codegen): check last char with byte methods ( #6509 )
...
When checking what last char in buffer is, avoid calculating a `char` when only comparing to an ASCII char (byte) anyway.
2024-10-14 01:09:02 +00:00
overlookmotel
18b68ff90e
perf(codegen): optimize CodeBuffer::print_ascii_byte ( #6516 )
...
Optimize `CodeBuffer`'s `print_byte_unchecked` and `print_ascii_byte` methods by making a fast path for when the buffer has sufficient capacity to be pushed to without growing.
As discussed in https://github.com/oxc-project/oxc/pull/6148#issuecomment-2381635390
2024-10-14 01:09:01 +00:00
overlookmotel
51fc63da45
refactor(codegen): rename CodeBuffer::print_bytes_unchecked method ( #6517 )
2024-10-13 13:14:49 +00:00
overlookmotel
782f0a7a69
refactor(codegen)!: rename print_char method to print_ascii_byte ( #6512 )
...
`print_ascii_byte` is more descriptive of what this method does, and makes clear the invariant that `byte` must be ASCII.
2024-10-13 12:51:37 +00:00
overlookmotel
05a2ebd03c
refactor(codegen): reorder dependencies in Cargo.toml ( #6514 )
2024-10-13 12:37:20 +00:00
overlookmotel
235d357600
docs(codegen): improve doc comments for CodeBuffer ( #6511 )
2024-10-13 12:21:39 +00:00
overlookmotel
e7f3e28076
refactor(codegen): rename var in CodeBuffer ( #6510 )
2024-10-13 11:58:39 +00:00
overlookmotel
1bbd383d0f
refactor(codegen): rename CodeBuffer::print_ascii_bytes method ( #6507 )
...
Pure refactor.
2024-10-13 11:19:09 +00:00
overlookmotel
cd9fe9ec03
refactor(codegen): rename vars in CodeBuffer methods ( #6506 )
...
Pure refactor. Consistently use `byte` for bytes, and `ch` for `char`s.
2024-10-13 11:10:10 +00:00
overlookmotel
c8fa2eb17a
docs(codegen): correct and reformat doc comments for CodeBuffer ( #6504 )
...
Comment about `take_source_text` was erroneous. Clean up and reformat other doc comments.
2024-10-13 11:10:09 +00:00
overlookmotel
fc536a5648
refactor(codegen): inline CodeBuffer methods ( #6501 )
...
These methods are all either trivial, or delegate to another method.
2024-10-13 10:55:07 +00:00
overlookmotel
40d1ee4588
docs(codegen): fix and reformat CodeBuffer examples ( #6499 )
...
Fix examples which would not compile.
2024-10-13 10:49:37 +00:00
overlookmotel
74206204dd
refactor(codegen): add CodeBuffer::as_bytes method ( #6498 )
...
`as_bytes` is clearer than `as_ref` (what kind of ref?)
2024-10-13 10:05:10 +00:00
overlookmotel
d816b0bd0e
test(codegen): add test for CodeBuffer::print_byte_unchecked ( #6497 )
...
Add test, and rename the rest of the test functions for `CodeBuffer`.
2024-10-13 09:51:50 +00:00
overlookmotel
8ae174bd36
refactor(codegen): rename CodeBuffer::print_byte_unchecked method ( #6496 )
...
Pure refactor. `*_unchecked` is the conventional name for unsafe methods, not `*_unsafe`.
2024-10-13 09:51:49 +00:00
overlookmotel
5843e01bed
refactor(codegen): shorten CodeBuffer::take_source_text ( #6495 )
...
Pure refactor.
2024-10-13 09:51:47 +00:00
overlookmotel
951def6e35
refactor(codegen): clarify safety comments in CodeBuffer ( #6494 )
2024-10-13 09:36:40 +00:00
overlookmotel
84a51ee576
refactor(codegen): rename vars in CodeBuffer ( #6493 )
...
Pure refactor. Just rename vars.
2024-10-13 09:36:39 +00:00
overlookmotel
05bd616d88
refactor(codegen): add line break ( #6492 )
2024-10-13 09:27:42 +00:00
DonIsaac
204bf5533e
refactor(codegen): add CodeBuffer to fix soundness hole ( #6148 )
...
# What This PR Does
Adds `CodeBuffer`, a simple wrapper over a `Vec<u8>` with a protective and reduced API for upholding UTF-8 validity guarantees. Closes #6147 .
Note that this struct is actually quite small. Most of the added lines are doc comments.
2024-10-13 09:14:48 +00:00
Dunqing
02bfbfeef5
fix(codegen): preserve parenthesis for ChainExpression ( #6430 )
...
close : #6385
The fixing way was referenced from `esbuild`, it is according to these [states](332727499e/internal/js_ast/js_ast.go (L590-L604)
)(determined in the parser) to determine whether to print parenthesis
Due to differences in implementation details, we are unable to record certain information like `esbuild` does in its parser. But fortunately, The `ParenthesisExpression` AST is actually like what `esbuild` stored states.
2024-10-13 08:03:37 +00:00
camc314
2ade16ece5
fix(codegen): invalid codegen when in inside bin expr in or loop ( #6431 )
...
https://github.com/oxc-project/monitor-oxc/actions/runs/11278829870 ??
2024-10-13 06:47:10 +00:00
camc314
6896efc00c
fix(codegen): fix in in sequence expr in for loops ( #6428 )
...
not sure if this is right, but it doesn't break any existing tests so hopefully?
2024-10-13 06:47:09 +00:00
Boshen
91c87dd380
refactor(codegen)!: remove Codegen::enableSourceMap API ( #6452 )
2024-10-12 04:56:43 +00:00
Boshen
7645e5c34b
refactor(codegen)!: remove CommentOptions API ( #6451 )
2024-10-11 13:53:28 +00:00
Boshen
520096030a
refactor(oxc)!: remove passing Trivias around ( #6446 )
...
part of #6426
2024-10-11 06:09:25 +00:00
Dunqing
702b574afb
refactor(codegen): only print necessary parentheses in TSAsExpression ( #6429 )
...
Part of fixing #6385
2024-10-11 02:04:27 +00:00
oxc-bot
6921d50371
release(crates): v0.31.0 ( #6360 )
...
## [0.31.0] - 2024-10-08
- 01b878e parser: [**BREAKING**] Use `BindingIdentifier` for `namespace`
declaration names (#6003 ) (DonIsaac)
- 95ca01c cfg: [**BREAKING**] Make BasicBlock::unreachable private
(#6321 ) (DonIsaac)
- 020bb80 codegen: [**BREAKING**] Change to `CodegenReturn::code` and
`CodegenReturn::map` (#6310 ) (Boshen)
- 409dffc traverse: [**BREAKING**] `generate_uid` return a
`BoundIdentifier` (#6294 ) (overlookmotel)
- 5a73a66 regular_expression: [**BREAKING**] Simplify public APIs
(#6262 ) (leaysgur)
- 32d972e parser: [**BREAKING**] Treat unambiguous files containing TS
export assignments as modules (#6253 ) (overlookmotel)
- 4f6bc79 transformer: [**BREAKING**] Remove `source_type` param from
`Transformer::new` (#6251 ) (overlookmotel)
- afc3ccb napi/transform: [**BREAKING**] Rename
`TransformOptions::react` to `jsx`. (#6211 ) (Boshen)
- 82ab689 transformer,minifier: [**BREAKING**] Move define and inject
plugin from minifier to transformer (#6199 ) (Boshen)
### Features
- fa4d505 cfg: Derive more base traits for CFG blocks (#6320 ) (DonIsaac)
- 14275b1 cfg: Color-code edges in CFG dot diagrams (#6314 ) (DonIsaac)
- 7566c2d data_structures: Add `as_slice` + `as_mut_slice` methods to
stacks (#6216 ) (overlookmotel)
- c3c3447 data_structures: Add `oxc_data_structures` crate; add stack
(#6206 ) (Boshen)
- e304e8c minifier: Minify exponential arithmetic operation. (#6281 )
(7086cmd)
- f9ae70c minifier: Minify basic arithmetic calculations. (#6280 )
(7086cmd)
- 4008afe minifier: Fold array and object constructors (#6257 )
(camchenry)
- 115ccc9 minifier: Bitwise not in exceeded value. (#6235 ) (7086cmd)
- ee6c850 minifier: Scaffold peephole replace known methods. (#6245 )
(7086cmd)
- c32af57 minifier: Fold demical bitwise not for bigint. (#6233 )
(7086cmd)
- 23b6464 minifier: Fold true / false comparison. (#6225 ) (7086cmd)
- 585ccda minifier: Support subtraction assignment. (#6214 ) (7086cmd)
- cca0034 minifier: Handle positive `NaN` and `Infinity`. (#6207 )
(7086cmd)
- dac8f09 minifier: Minify unary plus negation. (#6203 ) (7086cmd)
- 3b79e1b minifier: Evaluate bigint in fold constant (#6178 ) (Boshen)
- abd3a9f napi/transform: Perform dce after define plugin (#6312 )
(Boshen)
- a0ccc26 napi/transform: Add `lang` option to change source type
(#6309 ) (Boshen)
- f98e12c napi/transform: Add inject plugin (#6250 ) (Boshen)
- 291891e napi/transform: Add `define` option (#6212 ) (Boshen)
- 51a78d5 napi/transform: Rename all mention of React to Jsx; remove
mention of `Binding` (#6198 ) (Boshen)
- 2f888ed oxc: Add napi transform options (#6268 ) (Boshen)
- 8729755 oxc,napi/transform: Napi/transform use oxc compiler pipeline
(#6298 ) (Boshen)
- f6e42b6 sourcemap: Add support for sourcemap debug IDs (#6221 ) (Tim
Fish)
- 9e62396 syntax_operations: Add crate `oxc_syntax_operations` (#6202 )
(Boshen)
- cf20f3a transformer: Exponentiation transform: support private fields
(#6345 ) (overlookmotel)
### Bug Fixes
- 84b2d07 codegen: Converts line comment to block comment if it is a
`PURE` comment (#6356 ) (Dunqing)
- e9eeae0 isolated-declarations: False positive for function with a type
asserted parameters (#6181 ) (Dunqing)
- d953a6b minifier: Correct the reference link (#6283 ) (dalaoshu)
- 37cbabb minifier: Should not handle the strict operation for bool
comparison. (#6261 ) (7086cmd)
- e29c067 minifier: Handle exceeded shifts. (#6237 ) (7086cmd)
- 294da86 napi/transform: Fix index.d.ts (Boshen)
- 9736aa0 oxc_transformer: Define `import.meta` and `import.meta.*`
(#6277 ) (IWANABETHATGUY)
- 6159560 parser: String `ImportSpecifier`s for type imports (#6352 )
(DonIsaac)
- 1380d8b parser: Should regard comments where after `=` as leading
comments of next token (#6355 ) (Dunqing)
- 2bcd12a transformer: Exponentiation transform: fix reference flags
(#6330 ) (overlookmotel)
- 28cbfa7 transformer: Exponentiation transform: fix temp var names
(#6329 ) (overlookmotel)
- 3a4bcc7 transformer: Exponentiation transform: fix temp var names
(#6318 ) (overlookmotel)
- ccb7bdc transformer: Exponentiation transform: do not replace object
when private property (#6313 ) (overlookmotel)
- 56d50cf transformer: Exponentiation transform: do not assume `Math` is
not a local var (#6302 ) (overlookmotel)
- bd81c51 transformer: Exponentiation transform: fix duplicate symbols
(#6300 ) (overlookmotel)
- 06797b6 transformer: Logical assignment operator transform: fix
reference IDs (#6289 ) (overlookmotel)
- 4b42047 transformer: Fix memory leak in `ReplaceGlobalDefines` (#6224 )
(overlookmotel)
- a28926f transformer: Fix inserting `require` with `front` option
(#6188 ) (overlookmotel)
- b92fe84 transformer: `NonEmptyStack::push` write value before updating
cursor (#6169 ) (overlookmotel)
### Performance
- 5db9b30 allocator: Use lower bound of size hint when creating Vecs
from an iterator (#6194 ) (DonIsaac)
- 788e444 transformer: Parse options from comments only once (#6152 )
(overlookmotel)
- da2b2a4 transformer: Look up `SymbolId` for `require` only once
(#6192 ) (overlookmotel)
- 40bd919 transformer: Faster parsing JSX pragmas from comments (#6151 )
(overlookmotel)
### Documentation
- eb1d0b8 transformer: Exponentiation transform: update doc comments
(#6315 ) (overlookmotel)
- c7636d7 traverse: Remove erroneous doc comment (#6328 ) (overlookmotel)
### Refactor
- f7d1136 allocator: Remove unnecessary `Vec` impl (#6213 )
(overlookmotel)
- 40932f7 cfg: Use IndexVec for storing basic blocks (#6323 ) (DonIsaac)
- a1e0d30 cfg: Add type alias for Graph (#6322 ) (DonIsaac)
- 7672793 cfg: Move block data types to separate file (#6319 ) (DonIsaac)
- cc57541 data_structures: `NonEmptyStack::len` hint that `len` is never
0 (#6220 ) (overlookmotel)
- 147a5d5 data_structures: Remove `is_empty` methods for non-empty
stacks (#6219 ) (overlookmotel)
- 61805fd data_structures: Add debug assertion to `SparseStack` (#6218 )
(overlookmotel)
- dbfa0bc data_structures: Add `len` method to `StackCommon` trait
(#6215 ) (overlookmotel)
- ac5a23f minifier: Use ctx.ast.vec instead of Vec::new. (#6331 )
(7086cmd)
- 1cee207 minifier: Some boilerplate work for PeepholeFoldConstants
(#6054 ) (Boshen)
- 5b5daec napi: Use vitest (#6307 ) (Boshen)
- 58a8615 napi/transform: Remove context (#6306 ) (Boshen)
- 099ff3a napi/transform: Remove "Binding" from types; fix type error
(#6260 ) (Boshen)
- 54c1c53 napi/transform: Remove a call on `TransformOptions::clone`
(#6210 ) (Boshen)
- aa0dbb6 oxc: Add `napi` feature, change napi parser to use `oxc` crate
(#6265 ) (Boshen)
- 3b53dd4 parser: Provide better error messages for `const` modifiers on
class elements (#6353 ) (DonIsaac)
- acab777 regular_expression: Misc fixes (#6234 ) (leaysgur)
- bdd9e92 semantic: Rename vars from `ast_node_id` to `node_id` (#6304 )
(overlookmotel)
- d110700 semantic: Dereference IDs as quickly as possible (#6303 )
(overlookmotel)
- 03bc041 syntax: Remove some unsafe code creating IDs (#6324 )
(overlookmotel)
- bd5fb5a transformer: Exponentiation transform: rename methods (#6344 )
(overlookmotel)
- 4aa4e6b transformer: Exponentiation transform: do not wrap in
`SequenceExpression` if not needed (#6343 ) (overlookmotel)
- a15235a transformer: Exponentiation transform: no cloning (#6338 )
(overlookmotel)
- 7d93b25 transformer: Exponentiation transform: split into 2 paths
(#6316 ) (overlookmotel)
- 15cc8af transformer: Exponentiation transform: break up into functions
(#6301 ) (overlookmotel)
- 7f5a94b transformer: Use `Option::get_or_insert_with` (#6299 )
(overlookmotel)
- 0cea6e9 transformer: Exponentiation transform: reduce identifier
cloning (#6297 ) (overlookmotel)
- ac7a3ed transformer: Logical assignment transform: reduce identifier
cloning (#6296 ) (overlookmotel)
- 527f7c8 transformer: Nullish coalescing transform: no cloning
identifier references (#6295 ) (overlookmotel)
- 7b62966 transformer: Move `BoundIdentifier` into `oxc_traverse` crate
(#6293 ) (overlookmotel)
- c7fbf68 transformer: Logical assignment operator transform: no cloning
identifier references (#6290 ) (overlookmotel)
- f0a74ca transformer: Prefer `create_bound_reference_id` to
`create_reference_id` (#6282 ) (overlookmotel)
- ba3e85b transformer: Fix spelling (#6279 ) (overlookmotel)
- bc757c8 transformer: Move functionality of common transforms into
stores (#6243 ) (overlookmotel)
- 1c31932 transformer: Rename var in `VarDeclarations` common transform
(#6242 ) (overlookmotel)
- 0400ff9 transformer: `VarDeclarations` common transform: check if at
top level with `ctx.parent()` (#6231 ) (overlookmotel)
- 235cdba transformer: Use AstBuilder instance from TraverseCtx (#6209 )
(overlookmotel)
- a7ed29e transformer: Insert `import` statement or `require` depending
on source type (#6191 ) (overlookmotel)
- 4c63f0e transformer: Rename methods (#6190 ) (overlookmotel)
- 900cb46 transformer: Convert `ModuleImports` into common transform
(#6186 ) (overlookmotel)
- 00e2802 transformer: Introduce `TopLevelStatements` common transform
(#6185 ) (overlookmotel)
- 70d4c56 transformer: Rename `VarDeclarationsStore` methods (#6184 )
(overlookmotel)
- 81be545 transformer: Export `var_declarations` module from `common`
module (#6183 ) (overlookmotel)
- 02fedf5 transformer: Shorten import (#6180 ) (overlookmotel)
- f2ac584 transformer: Use TraverseCtx's ast in ModuleImports (#6175 )
(Dunqing)
- 21b08ba transformer: Shared `VarDeclarations` (#6170 ) (overlookmotel)
- 0dd9a2e traverse: Add helper methods to `BoundIdentifier` (#6341 )
(overlookmotel)
- c0e2fef traverse: Function to get var name from node (#6317 )
(overlookmotel)
- adc5381 traverse: `TraverseAncestry` use `NonEmptyStack` (#6217 )
(overlookmotel)
### Testing
- 964d71e minifier: Add arithmetic tests for fold constants. (#6269 )
(7086cmd)
- fcb4651 minifier: Enable null comparison with bigint. (#6252 )
(7086cmd)
- d4f2ee9 transformer: Tidy up transform checker (#6287 ) (overlookmotel)
- 0f5afd7 transformer: Transform checker output symbol name for
mismatches (#6286 ) (overlookmotel)
---------
Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-10-08 20:55:24 +08:00
Dunqing
585cdd5bcd
chore(codegen): add more tests for comments from esbuild ( #6357 )
...
Copy from https://github.com/rolldown-rs/rolldown/blob/main/crates/rolldown/tests/esbuild/dce/remove_unused_pure_comment_calls/entry.js
2024-10-08 05:42:43 +00:00
Dunqing
84b2d072e8
fix(codegen): converts line comment to block comment if it is a PURE comment ( #6356 )
...
The last part of fixing https://github.com/rolldown/rolldown/pull/2375/files#r1789011257
In the following case, the pure comment was written by `//`
```ts
const Component = // #__PURE__
React.forwardRef((props, ref) => {});
```
The printed code looks like this
```ts
const Component =
// #__PURE__ React.forwardRef((props, ref) => {});
```
As you can see, it is broken because the code also commented, so we need to replace `//` with `/* */`
2024-10-08 05:42:42 +00:00
Boshen
020bb80b65
refactor(codegen)!: change to CodegenReturn::code and CodegenReturn::map ( #6310 )
2024-10-06 05:05:47 +00:00
oxc-bot
6c01fd7480
release(crates): v0.30.5 ( #6163 )
...
## [0.30.5] - 2024-09-29
### Features
- 15552ac napi/transform: Display semantic error (#6160 ) (Boshen)
- f50fdcd napi/transform: Make react refresh option take a boolean
(#6146 ) (Boshen)
### Bug Fixes
- f27d59f napi/transform: Remove confusing `jsx` option (#6159 ) (Boshen)
- bfd1988 transformer/react: Should not collect use-hooks if it's a
nested member expression (#6143 ) (Dunqing)
### Refactor
- ab187d1 codegen: Restrict visibility of internal methods (#6145 )
(DonIsaac)
- 375bebe transformer: Improve parsing React pragmas (#6138 )
(overlookmotel)
- 0836f6b transformer: Move parsing pragmas into TS transform (#6137 )
(overlookmotel)
- 30424fa transformer: TS transforms only store options they need
(#6135 ) (overlookmotel)
---------
Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-09-29 15:20:19 +08:00
DonIsaac
ab187d1e22
refactor(codegen): restrict visibility of internal methods ( #6145 )
...
add `pub(crate)` to `Codegen` methods that should only be used within `oxc_codegen`
2024-09-28 14:33:42 +00:00
oxc-bot
73098a43ff
release(crates): v0.30.4 ( #6134 )
...
## [0.30.4] - 2024-09-28
### Bug Fixes
- 8582ae3 codegen: Missing parentheses if there is a pure comment before
a NewExpression as a ComputedMemberExpression's callee (#6105 ) (Dunqing)
- fd6798f parser: Remove unintended `pub Kind` (#6109 ) (Boshen)
- 6f98aad sourcemap: Align sourcemap type with Rollup (#6133 ) (Boshen)
- 64d4756 transformer: Fix debug assertion in `Stack` (#6106 )
(overlookmotel)
### Performance
- 05852a0 codegen: Do not check whether there are annotation comments or
not if we don't preserve annotation comments (#6107 ) (Dunqing)
### Documentation
- 26a273a oxc-transform: Update README (Boshen)
- e2c5baf transformer: Fix formatting of README (#6111 ) (overlookmotel)
### Refactor
- 2090fce semantic: Fix lint warning in nightly (#6110 ) (overlookmotel)
- 7bc3988 transformer: Remove dead code (#6124 ) (overlookmotel)
- 07fe45b transformer: Exponentiation operator: convert to match (#6123 )
(overlookmotel)
- 4387845 transformer: Share `TypeScriptOptions` with ref not `Rc`
(#6121 ) (overlookmotel)
- 09e41c2 transformer: Share `TransformCtx` with ref not `Rc` (#6118 )
(overlookmotel)
- 58fd6eb transformer: Pre-allocate more stack space (#6095 )
(overlookmotel)
- 9ac80bd transformer: Add wrapper around `NonNull` (#6115 )
(overlookmotel)
- c50500e transformer: Move common stack functionality into
`StackCommon` trait (#6114 ) (overlookmotel)
- 9839059 transformer: Simplify `StackCapacity` trait (#6113 )
(overlookmotel)
---------
Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-09-28 13:08:44 +08:00
Dunqing
05852a04ed
perf(codegen): do not check whether there are annotation comments or not if we don't preserve annotation comments ( #6107 )
2024-09-27 11:18:42 +00:00
Dunqing
8582ae3e91
fix(codegen): missing parentheses if there is a pure comment before a NewExpression as a ComputedMemberExpression's callee ( #6105 )
...
refer to 332727499e/internal/js_printer/js_printer.go (L2544)
2024-09-27 07:12:31 +00:00
oxc-bot
d56264ee9a
release(crates): v0.30.3 ( #6104 )
...
## [0.30.3] - 2024-09-27
### Bug Fixes
- a8338dd isolated-declarations: Accidentally collected references of
original ast (#6102 ) (Dunqing)
- 933a743 semantic: Add interfaces and functions to
`SymbolFlags::ClassExcludes` (#6057 ) (DonIsaac)
### Documentation
- 6167f29 oxc-transform: Modify the example code in the `Readme` file
(#6103 ) (loong.woo)
---------
Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-09-27 14:23:48 +08:00
Dunqing
93d509db2b
chore(codegen): test function reports duplicate error information ( #6067 )
...
<img width="649" alt="image" src="https://github.com/user-attachments/assets/7789a7b4-56fb-40a2-a76d-52a55fe2bfad ">
2024-09-27 05:51:31 +00:00
oxc-bot
60d02a61f9
release(crates): v0.30.2 ( #6100 )
...
## [0.30.2] - 2024-09-27
### Features
- 60c52ba ast: Allow passing span to `void_0` method (#6065 ) (Dunqing)
- cca433f codegen: Print `vite` / `webpack` special comments (#6021 )
(Dunqing)
- 8d026e1 regular_expression: Implement `GetSpan` for RegExp AST nodes
(#6056 ) (camchenry)
- 7764793 regular_expression: Implement visitor pattern trait for regex
AST (#6055 ) (camchenry)
- f866781 semantic: Check for type annotations on left side of `for..in`
and `for..of` iterators (#6043 ) (DonIsaac)
- 8b2e9aa semantic: Check for JSDoc types in TS type annotations (#6042 )
(DonIsaac)
- 28da771 transformer: Do not transform `**` with bigint literals
(#6023 ) (Boshen)
### Bug Fixes
- a88504c diagnostics: Check for terminal when displaying links (#6018 )
(Boshen)
- 418ae25 isolated-declarations: Report uninferrable types in arrays
(#6084 ) (michaelm)
- e0a8959 minifier: Compute `void number` as `undefined` (#6028 )
(Boshen)
- 0658576 paresr: Do not report missing initializer error in ambient
context (#6020 ) (Boshen)
- b1af73d semantic: Do not create a `global` symbol for `declare global
{}` (#6040 ) (DonIsaac)
- c8682e9 semantic,codegen,transformer: Handle definite `!` operator in
variable declarator (#6019 ) (Boshen)
### Performance
- 6b7d3ed isolated-declarations: Should clone transformed AST rather
than original AST (#6078 ) (Dunqing)
- 85aff19 transformer: Introduce `Stack` (#6093 ) (overlookmotel)
- ad4ef31 transformer: Introduce `NonEmptyStack` (#6092 ) (overlookmotel)
### Documentation
- 3099709 allocator: Document `oxc_allocator` crate (#6037 ) (DonIsaac)
- d60ceb4 oxc: Add README.md and crate-level docs (#6035 ) (DonIsaac)
- efabfc8 semantic: Improve doc comments on `Reference` methods (#6076 )
(overlookmotel)
### Refactor
- 1fc80d1 ast: Move all ts ast related impl methods to `ast_impl`
(#6015 ) (Dunqing)
- fe696f0 codegen: Simplify printing annotation comments (#6027 )
(Dunqing)
- e60ce50 transformer: Add `SparseStack::with_capacity` method (#6094 )
(overlookmotel)
- 1399d2c transformer: Move `SparseStack` definition into folder (#6091 )
(overlookmotel)
- 6bd29dd transformer: Add more debug assertions (#6090 ) (overlookmotel)
- c90b9bf transformer: Rename `SparseStack` methods (#6089 )
(overlookmotel)
- 2b380c8 transformer: Remove unsued `self.ctx` (#6022 ) (Boshen)
### Testing
- 93575cd semantic: Add comprehensive regression test suite (#5976 )
(DonIsaac)
- a4cec75 transformer: Enable tests (#6032 ) (overlookmotel)
---------
Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-09-27 13:28:12 +08:00
Dunqing
cca433f84a
feat(codegen): print vite / webpack special comments ( #6021 )
...
Related: https://github.com/oxc-project/oxc/issues/1046#issuecomment-2347345319
Close : #6024
2024-09-26 15:19:31 +00:00
Dunqing
fe696f0dec
refactor(codegen): simplify printing annotation comments ( #6027 )
...
Simplify printing annotation comments, reusing the architecture of printing JSDoc.
2024-09-25 06:27:18 +00:00
Boshen
c8682e9fcb
fix(semantic,codegen,transformer): handle definite ! operator in variable declarator ( #6019 )
...
closes #5999
2024-09-24 08:32:05 +00:00
oxc-bot
7f0e27afd9
release(crates): v0.30.1 ( #6016 )
...
## [0.30.1] - 2024-09-24
### Features
- 5c323a2 minifier: Loop compressor passes (#6013 ) (Boshen)
### Bug Fixes
- 9ca202a codegen: Preserve newlines between comments (#6014 ) (Boshen)
- 4a99372 codegen: Print jsdoc comments for `TSEnumMember`s (#6007 )
(camc314)
- 97a2c41 isolated-declarations: False positive for class private getter
with non-inferrable return type (#5987 ) (michaelm)
### Performance
- 2b17003 linter, prettier, diagnostics: Use `FxHashMap` instead of
`std::collections::HashMap` (#5993 ) (camchenry)
- 7b90d79 transformer: `SparseStack` always keep minimum 1 entry (#5962 )
(overlookmotel)
- 28fe80a transformer: Logical assignment operator transform use
`SparseStack` (#5960 ) (overlookmotel)
- 9f7d4b7 transformer: Exponentiation operator transform use
`SparseStack` (#5959 ) (overlookmotel)
- 5dc0154 transformer: Nullish coalescing operator transform use
`SparseStack` (#5942 ) (overlookmotel)
- 618e89e transformer: Arrow function transform: reduce stack memory
usage (#5940 ) (overlookmotel)
### Documentation
- 5a0d17c ast: Document more AST nodes (#6000 ) (DonIsaac)
- 18371dd oxc: Include feature-guarded modules in docs.rs (#6012 )
(DonIsaac)
- 1abfe8f semantic: Document `SymbolTable` (#5998 ) (DonIsaac)
- f5eee72 semantic: Correct docs for `Reference` (#5992 ) (overlookmotel)
- 860f108 transformer: Add to arrow functions transform docs (#5989 )
(overlookmotel)
### Refactor
- 0a2f687 minifier: Move dce conditional expression to `RemoveDeadCode`
(#5971 ) (Boshen)
- f02bf51 transformer: Arrow function transform: remove unnecessary
assertion (#6002 ) (overlookmotel)
---------
Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-09-24 14:03:03 +08:00
Boshen
9ca202a01e
fix(codegen): preserve newlines between comments ( #6014 )
...
fixes #6010
2024-09-24 05:14:02 +00:00
camc314
4a99372c14
fix(codegen): print jsdoc comments for TSEnumMembers ( #6007 )
...
closes #6006
Boshen/Dunqing please feel free to take over this PR. it's a bit outside what i normally work on. 🙂
2024-09-24 01:12:57 +00:00
oxc-bot
b9178cc5ae
release(crates): v0.30.0 ( #5986 )
...
## [0.30.0] - 2024-09-23
- c96b712 syntax: [**BREAKING**] Remove `SymbolFlags::ArrowFunction`
(#5857 ) (overlookmotel)
### Features
- ae89145 ast: Revert `#[non_exhaustive]` change (#5885 ) (Boshen)
- e8bf30a ast: Add `Comment::real_span` (#5764 ) (Boshen)
- d901772 codegen: Implement minify number from terser (#5929 ) (Boshen)
- 9f6696a codegen: Add new lines to `TSTypeParameterDeclaration` (#5853 )
(Boshen)
- bcdbba3 codegen: Print jsdoc comments that are attached to statements
and class elements (#5845 ) (Boshen)
- 26386da codegen: Have `with_source_text` reserve memory for code
buffer (#5823 ) (DonIsaac)
- 4a62703 isolated-declarations: Handle `export` in the `namespace`
correctly (#5950 ) (Dunqing)
- 84a5816 isolated_declarations: Add `stripInternal` (#5878 ) (Boshen)
- dfbde2c isolated_declarations: Print jsdoc comments (#5858 ) (Boshen)
- 3bf7b24 linter: Make `typescript/no-duplicate-enum-values` a
`correctness` rule (#5810 ) (DonIsaac)
- 9076dee minifier: Implement part of `StatementFusion` (#5936 ) (Boshen)
- a111bb6 oxc_wasm: Add `verbse` option to `debug_dot` (#5879 )
(IWANABETHATGUY)
- 8e7556f parser: Calculate leading and trailing position for comments
(#5785 ) (Boshen)
- 65c337a prettier: Improve ts compatibility (#5900 ) (Alexander S.)
- 6d9ccdd prettier: Support TSMappedType (#5834 ) (Alexander S.)
- b5ac5a6 prettier: Support TSModuleDeclaration (#5813 ) (Alexander S.)
- 74d8714 semantic: Add help message for invalid `let x?: number`
(#5969 ) (DonIsaac)
- 3230ae5 semantic: Add `SemanticBuilder::with_excess_capacity` (#5762 )
(overlookmotel)
- a5f2e9a span: Impl `From<Atom<'a>>` for `Atom` (#5809 ) (DonIsaac)
- a07f03a transformer: Sync `Program::source_type` after transform
(#5887 ) (Boshen)
- 635e918 traverse: `generate_uid_name` method (#5839 ) (overlookmotel)
### Bug Fixes
- 66e919e ast: Correct TS types for JSX (#5884 ) (overlookmotel)
- 0d10521 ast: Serialize `JSXMemberExpressionObject` to estree (#5883 )
(overlookmotel)
- a822c9d ast: Serialize `JSXElementName` to estree (#5882 ) (Boshen)
- f4aefb5 codegen: Print `let[0]` as `(let)[0]` (#5947 ) (Boshen)
- cee9d0b codegen: Fix spacing of `for await (x of y)` (#5890 ) (Boshen)
- 5901d2a codegen: Various spacing issues (#5820 ) (Boshen)
- fd1c46c isolated-declarations: Infer failed if there are two
setter/getter methods that need to be inferred (#5967 ) (Dunqing)
- 6df82ee isolated-declarations: False positive for class private method
that has arguments without type annotations (#5964 ) (Dunqing)
- 6a9e71d isolated-declarations: Wrap TSFunctionType in parentheses if
it is inside the `TSUnionType` (#5963 ) (Dunqing)
- ea32d5b isolated-declarations: Should print constructor assignments
first (#5934 ) (Dunqing)
- 0f96b59 isolated-declarations: Missing print comments in class's
private method (#5931 ) (Dunqing)
- 8780c54 isolated-declarations: Do not union a undefined when the param
type is any or unknown (#5930 ) (Dunqing)
- f07ff14 isolated-declarations: Should not transform signature that has
type annotation (#5927 ) (Dunqing)
- b6a9178 isolated-declarations: Don't collect references when
`ExportNamedDeclaration` has source (#5926 ) (Dunqing)
- 756a571 isolated-declarations: Missing empty export when has an export
declare (#5925 ) (Dunqing)
- e148c80 isolated_declarations: Try fix fixtures (Boshen)
- 9b3f763 isolated_declarations: Try fix new line issue (Boshen)
- ee748b0 isolated_declarations: Fix fixture spacing (Boshen)
- 362c427 mangler,codegen: Do not mangle top level symbols (#5965 )
(Boshen)
- 127c881 napi/transform: Fix jsdoc links (#5886 ) (Boshen)
- 6c04fa1 napi/transform: Make isolated_declaration options optional
(#5880 ) (Boshen)
- 42dcadf parser: Hashbang comment should not keep the end newline char
(#5844 ) (Boshen)
- f1551d6 semantic: `?` on variable declaration type annotations is a
syntax error (#5956 ) (DonIsaac)
- a23879c semantic: Analyze `ReferenceFlags` incorrectly when there are
nested `AssignmentTarget` (#5847 ) (Dunqing)
- 87323c6 transformer: Arrow function transform: prevent stack getting
out of sync (#5941 ) (overlookmotel)
- 4e9e838 transformer: Fix arrow function transform (#5933 )
(overlookmotel)
- 4d5c4f6 transformer: Fix reference flags in logical assignment
operator transform (#5903 ) (overlookmotel)
- d335a67 transformer: Fix references in logical assignment operator
transform (#5896 ) (overlookmotel)
- 9758c1a transformer: JSX source: add `var _jsxFileName` statement
(#5894 ) (overlookmotel)
- 49ee1dc transformer: Arrow function transform handle `this` in arrow
function in class static block (#5848 ) (overlookmotel)
- 172fa03 transformer: Fix stacks in arrow function transform (#5828 )
(overlookmotel)
- d74c7fa transformer: Remove `AstBuilder::copy` from arrow functions
transform (#5825 ) (overlookmotel)
- 3cc38df transformer/react: React refresh panics when encounter `use`
hook (#5768 ) (Dunqing)
### Performance
- cd34f07 isolated-declarations: Combine type/value bindings and
type/value references into one (#5968 ) (Dunqing)
- c477424 mangler: Use `sort_unstable_by_key` instead of `sort_by`
(#5948 ) (Boshen)
- c3e0fb6 semantic: Simplify resetting ReferenceFlags in
`AssignmentExpression` (#5846 ) (Dunqing)
- ff7d9c1 transformer: Arrow function transform: calculate whether
`this` is in arrow function lazily (#5850 ) (Dunqing)
- fd70c4b transformer: Arrow function transform more efficient scope
search (#5842 ) (overlookmotel)
- 56703a3 transformer: Make branch more predictable in arrow function
transform (#5833 ) (overlookmotel)
- 36e698b transformer: Call `transform_jsx` in `exit_expression` rather
than `enter_expression` (#5751 ) (Dunqing)
- aac8316 transformer/react: Improve `is_componentish_name`'s
implementation (#5769 ) (Dunqing)
### Documentation
- acc2d16 ast: Document most TypeScript AST nodes (#5983 ) (DonIsaac)
- 47c2faa ast: Document TryStatement and related nodes (#5970 )
(DonIsaac)
- 83ca7f5 diagnostics: Fully document `oxc_diagnostics` (#5865 )
(DonIsaac)
- bacfbb8 oxc: Add submodule documentation (#5984 ) (DonIsaac)
- 3120c6c parser: Add module and struct level documentation (#5831 )
(DonIsaac)
- 1ccf290 semantic: Document `AstNode` and `AstNodes` (#5872 ) (DonIsaac)
- e04841c syntax: Add ModuleRecord documentation (#5818 ) (DonIsaac)
- 7085829 transformer: Arrow function transform: comment about
incomplete implementation (#5945 ) (overlookmotel)
- 66b4688 transformer: React: convert docs to standard format (#5891 )
(overlookmotel)
- 7f05eed transformer: Add comment about missing features in arrow
function transform (#5855 ) (overlookmotel)
- 8770647 transformer: Correct docs for arrow function transform (#5854 )
(overlookmotel)
### Refactor
- f4fac0f ast: Remove `.iter()` where not needed (#5904 ) (camchenry)
- 17cd903 ast: Move functions to top level in `ast` macro (#5793 )
(overlookmotel)
- cf97f6d ast: Import `syn` types in `ast` macro (#5792 ) (overlookmotel)
- dc10eaf ast: Split `ast` macro into multiple files (#5791 )
(overlookmotel)
- 6dd6f7c ast: Change `Comment` struct (#5783 ) (Boshen)
- bb95306 codegen: Change annotation comment tests to snapshot (#5800 )
(Boshen)
- e613a3d codegen: Prepare to add leading comments by adding a template
method pattern (#5784 ) (Boshen)
- 7caae5b codegen: Add `GetSpan` requirement to `Gen` trait (#5772 )
(Boshen)
- c84bd28 isolated-declarations: Simplify to infer the getter and setter
methods (#5966 ) (Dunqing)
- 67b4220 isolated-declarations: Simplify handling VariableDeclaration
transform (#5916 ) (Dunqing)
- 2fd5c2a isolated-declarations: Pre-filter statements that do not need
to be transformed (#5909 ) (Dunqing)
- 943bd76 minifier: Move tests to their src files (#5912 ) (Boshen)
- cbaeea6 minifier: Clean up some tests (#5910 ) (Boshen)
- 144611e minifier: Align ast pass names with closure compiler (#5908 )
(Boshen)
- 31e9db4 parser: Shorten `UniquePromise` code (#5805 ) (overlookmotel)
- 2322b8b parser: Remove dead code warning when running tests (#5804 )
(overlookmotel)
- 4abfa76 parser: Add `--ast` and `--comments` to example (Boshen)
- a4b55bf parser: Use AstBuilder (#5743 ) (Boshen)
- d910304 semantic: Rename lifetime on `impl IntoIterator for &AstNodes`
(#5881 ) (overlookmotel)
- f360e2c semantic: Remove redundunt is_leading check for JSDoc (#5877 )
(leaysgur)
- 9115dd9 semantic: Use `Comment::attached_to` for jsdoc attachment
(#5876 ) (Boshen)
- db4f16a semantic: Call `with_trivias` before `build_with_jsdoc`
(#5875 ) (Boshen)
- 3d13c6d semantic: Impl `IntoIterator` for `&AstNodes` (#5873 )
(DonIsaac)
- 47d9ad8 semantic: Remove unused vars warning in release mode (#5803 )
(overlookmotel)
- 155d7fc transformer: Arrow function transform: ignore type fields when
finding enclosing arrow function (#5944 ) (overlookmotel)
- 2cf5607 transformer: Split up logical assignment operator transform
into functions (#5902 ) (overlookmotel)
- 41fbe15 transformer: Internal functions not `pub` in logical
assignment operator transform (#5898 ) (overlookmotel)
- b11d91c transformer: Remove nested match in logical assignment
operator transform (#5897 ) (overlookmotel)
- 52c9903 transformer: JSX: use `AstBuilder::vec_from_iter` (#5862 )
(overlookmotel)
- 74364ad transformer: JSX: merge `transform_jsx_attribute_item` into
`transform_jsx` (#5861 ) (overlookmotel)
- d2eaa7d transformer: Reorder match arms in JSX transform (#5860 )
(overlookmotel)
- 58a8327 transformer: Simplify match in JSX transform (#5859 )
(overlookmotel)
- b9c4564 transformer: Transformer example output semantic + transformer
errors (#5852 ) (overlookmotel)
- 03e02a0 transformer: Comment about potential improvement to arrow
function transform (#5841 ) (overlookmotel)
- 40cdad5 transformer: Remove repeat code in arrow function transform
(#5837 ) (overlookmotel)
- 3dd188c transformer: Deref `SymbolId` immediately (#5836 )
(overlookmotel)
- 03a9e1a transformer: Reorder methods in arrow function transform
(#5830 ) (overlookmotel)
- 4d97184 transformer: Rename vars in arrow function transform (#5827 )
(overlookmotel)
- 01c5b7c transformer: Shorten code in arrow functions transform (#5826 )
(overlookmotel)
- 85ac3f7 transformer: Arrow functions transform do not wrap function
expressions in parentheses (#5824 ) (overlookmotel)
- 1c1353b transformer: Use AstBuilder instead of using struct
constructor (#5778 ) (Boshen)
### Testing
- 84b7d1a index: Add unit tests to `oxc_index` (#5979 ) (DonIsaac)
- d6cbbe7 isolated-declarations: Arrow function unions in return
signature (#5973 ) (DonIsaac)
---------
Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-09-23 11:20:12 +08:00