Boshen
d1d187417b
feat(ast)!: change comment.span to real position that contain // and /* ( #7154 )
...
closes #7150
2024-11-06 05:10:33 +00:00
Boshen
40d8acfbd1
feat(codegen): improvement printing of legal comments ( #7111 )
2024-11-04 08:56:00 +00:00
Boshen
caa4b1fd2a
feat(codegen): improve printing of comments ( #7108 )
2024-11-04 05:12:59 +00:00
Boshen
001058a8e4
feat(codegen): always print legal comments on its own line ( #7089 )
2024-11-02 15:55:23 +08:00
Boshen
dd79c1bfb3
refactor(codegen): replace daachorse with string match for annotation comment ( #7064 )
2024-11-02 14:16:10 +08:00
Boshen
413973df66
feat(codegen): print linked and external legal comment ( #7059 )
...
part of #7050
2024-11-02 04:08:14 +00:00
Boshen
ee27b92465
feat(codegen): print eof legal comments ( #7058 )
...
part of https://github.com/oxc-project/oxc/issues/7050
2024-11-01 16:56:57 +00:00
Boshen
6516f9eabc
feat(codegen): print inline legal comments ( #7054 )
...
part of https://github.com/oxc-project/oxc/issues/7050
2024-11-01 16:56:56 +00:00
Boshen
0bb1aa4c64
refactor(codegen): move options to its own file ( #7053 )
2024-11-01 09:28:59 +00:00
Boshen
423d54cb74
refactor(rust): remove the annoying clippy::wildcard_imports ( #6860 )
2024-10-24 13:57:19 +00:00
Boshen
05ef03dbab
fix(codegen): correct print __proto__ shorthand ( #6802 )
2024-10-23 07:16:00 +00:00
Boshen
1b7897cf01
fix(codegen): print #field in {} << 0; correctly ( #6799 )
2024-10-23 05:34:22 +00:00
Boshen
2f6ad42348
fix(codegen): print negative bigint 1n- -1n correctly after constant folding ( #6798 )
...
closes #6767
2024-10-23 04:56:50 +00:00
DonIsaac
374b972143
docs(codegen): add #![warn(missing_docs)] to oxc_codegen ( #6711 )
...
Part of https://github.com/oxc-project/backlog/issues/130
2024-10-21 00:13:57 +00:00
Boshen
1a90ec4b85
refactor(rust): backport v1.82.0 changes to main branch first ( #6690 )
2024-10-19 14:30:55 +00:00
Boshen
f4cdc56577
refactor(minifier): use constant folding unary expression from oxc_ecmascript ( #6647 )
2024-10-17 15:30:38 +00:00
Boshen
e5ed6a56a8
feat(codegen): print negative numbers ( #6624 )
2024-10-16 22:38:54 +00:00
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
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
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
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
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
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