Commit Graph

418 Commits

Author SHA1 Message Date
Boshen 315143ae42 refactor(codegen)!: remove useless CodeGenerator type alias (#10702) 2025-04-29 17:01:07 +00:00
Boshen 4795059eed fix(transformer_plugins): provide reference data when identifiers are replaced (#10620)
closes #10577
fixes https://github.com/rolldown/rolldown/issues/4261
2025-04-29 04:52:29 +00:00
oxc-bot 7cf80ef7fd release(crates): v0.67.0 (#10637) 2025-04-27 22:30:07 +08:00
Boshen 1962bc67d4 feat(transformer_plugins): split out oxc_transformer_plugins crate (#10617) 2025-04-25 08:39:56 +00:00
Dunqing 42ca96a81d feat(transformer, napi/transform): deprecate allowDeclareFields option (#10584)
After the `removeClassFieldsWithoutInitializer` option is supported, `allowDeclareFields` is no longer needed. More detail see https://github.com/oxc-project/oxc/pull/10491#issuecomment-2826008849
2025-04-25 01:30:22 +00:00
Dunqing 73cd730651 docs(transformer): add documentation for CompilerAssumptions::set_public_class_fields (#10582)
The documentation copy from [Babel](https://babeljs.io/docs/assumptions#setpublicclassfields), and added some documentation about `useDefineForClassFields: false` support
2025-04-25 01:30:22 +00:00
Dunqing b8414dbfb9 feat(napi/transform): support enabling removeClassFieldsWithoutInitializer (#10581)
Support passing `removeClassFieldsWithoutInitializer` by `oxc-transform` usage
2025-04-25 01:30:21 +00:00
Dunqing 6bff64ee77 feat(transformer/typescript): support removeClassFieldsWithoutInitializer option (#10576)
* close #9192
* close #10491

We've discussed adding `removeClassFieldsWithoutInitializer` option to support removing class fields without an initializer in https://github.com/oxc-project/oxc/pull/10491#issuecomment-2823195571. This is used to align the`TypeScript`'s `useDefineForClassFields: false` option.
2025-04-25 01:30:21 +00:00
oxc-bot ff67f13f99 release(crates): v0.66.0 (#10565)
## [0.66.0] - 2025-04-23

### Features

- 7d5ad7d parser: Report error when `import type { type }` is used
(#10528) (camc314)
- 6e40fac parser: Report error when `export type { type }` is used
(#10524) (camc314)

### Bug Fixes

- 43ad4e9 ast: Box `this_param` in `TSCallSignatureDeclaration` (#10558)
(Yuji Sugiura)
- 8eb3c0a ast/estree: Fix raw deser for `FormalParameter` (#10548)
(overlookmotel)
- 3ebf220 codegen: Generate missing `type` in `export type {} from
'mod'` (#10539) (Boshen)
- f19b287 estree: Add `TSParameterProperty` (#10534) (Yuji Sugiura)
- 7284f16 isolated-declarations: Leading comments of
`ExportDefaultDeclaration` and `TSExportAssignment` appear in incorrect
places (#10559) (Dunqing)
- 4c316a5 isolated_declarations: Fix broken snapshot files (#10561)
(Boshen)
- 84742d8 transformer/module_runner: Fix export default live binding
(#10560) (hi-ogawa)
- 6c115c7 transformer/module_runner: Fix execution order of re-export
(#10362) (hi-ogawa)
- b9d84b0 transformer/typescript: Remove `StringLiteral::raw` when
rewriting extensions (#10554) (overlookmotel)

### Performance

- 6a045c8 codegen: Speed up printing `Directive`s (#10551)
(overlookmotel)
- 3418ae5 transformer/class-properties: Re-use
`InstanceInitializerVisitor` (#10543) (overlookmotel)
- 7fcf0ac transformer/typescript: Reduce allocations renaming extensions
(#10555) (overlookmotel)

### Documentation

- 1a9530c transformer/class-properties: Fix typo (#10542)
(overlookmotel)

### Refactor

- 7e71282 transformer/class-properties: Correct outdated comment
(#10546) (overlookmotel)
- 596978b transformer/class-properties: Simplify to get `constructor`
method only once (#10493) (Dunqing)
- f13fe0a transformer/class-properties: Defer re-parenting initializers
scopes until all instance properties are transformed (#10495) (Dunqing)
- c83dad6 transformer/class-properties: Streamline handling scope of
instance property initializer (#10492) (Dunqing)

### Styling

- e10dfc8 traverse: Remove excess whitespace (#10544) (overlookmotel)

### Testing

- 227febf allocator: Ignore a slow doc test (#10521) (Dunqing)
- 14bb2be codegen: Add more tests for strings (#10552) (overlookmotel)

Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com>
2025-04-23 22:42:12 +08:00
oxc-bot 0ab2cb4a22 release(crates): v0.65.0 (#10522) 2025-04-21 18:03:15 +08:00
ocavue 78cdb1c525 docs(transform): correct tsc's --isolatedDeclarations flag (#10502)
This PR fixes a typo about isolated declarations CLI option in the docs.
The correct option name is `--isolatedDeclarations` ([document
link](https://www.typescriptlang.org/docs/handbook/compiler-options.html#:~:text=%2D%2DisolatedDeclarations)).

I also add some other tiny improvements to the docs.
2025-04-19 13:46:21 +08:00
oxc-bot 619488a05a release(crates): v0.64.0 (#10459) 2025-04-17 10:09:07 +08:00
hi-ogawa 1ff75bcde1 fix(transformer/module_runner): hoist export (#10347)
Aligning with https://github.com/vitejs/vite/pull/18983

I manually verified the test case output matches with the ones in Vite repo.

~I add a new TODO about "export default" getter, but this difference existed already. I plan to fix this separately.~ (EDIT: It turned out Vite's transform is the wrong one https://github.com/vitejs/vite/issues/19834.)
2025-04-14 02:36:53 +00:00
Boshen dfef8b5170 feat(transformer): enable using by default (#10333) 2025-04-09 13:08:28 +00:00
oxc-bot eba5fcf33b release(crates): v0.63.0 (#10309) 2025-04-08 13:52:15 +08:00
Boshen 78f1b3afa1 feat(transformer): enable using by default (#10286)
closes #9744
2025-04-07 09:23:26 +00:00
renovate[bot] e34967eb20 chore(deps): lock file maintenance npm packages (#10273) 2025-04-07 16:43:16 +08:00
oxc-bot 3b72e5b151 release(crates): v0.62.0 (#10158) 2025-04-02 09:48:40 +08:00
oxc-bot 76b245dafc release(crates): v0.61.2 (#9983) 2025-03-23 19:42:43 +08:00
oxc-bot 9a36e677b2 release(crates): v0.61.1 (#9936)
## [0.61.1] - 2025-03-21

### Features

- 8e3b20d napi/parser: Add portable wasm browser build (#9901) (Hiroshi
Ogawa)
- bc0670c tasks,oxc_allocator: Add new method clone_in_with_semantic_ids
for `CloneIn` trait (#9894) (IWANABETHATGUY)

Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com>
2025-03-21 12:46:52 +08:00
oxc-bot 33c1c76955 release(crates): v0.61.0 (#9923)
## [0.61.0] - 2025-03-20

- c631291 parser: [**BREAKING**] Parse `TSImportAttributes` as
`ObjectExpression` (#9902) (Boshen)

- eef7eb6 minifier: [**BREAKING**] Rename
`CompressOptions::all_true`/`all_false` to `smallest`/`safest` (#9866)
(sapphi-red)

### Features

- 38ad787 data_structures: Add `assert_unchecked!` macro (#9885)
(overlookmotel)
- dcd356e minifier: Support `keep_names` option (#9867) (sapphi-red)
- 6565fc4 napi: Feature gate allocator (#9921) (Boshen)
- 2cedfe4 napi: Add codeframe to napi error (#9893) (Boshen)
- a9a47a6 parser: Add regex cargo feature to oxc_parser (#9879) (Toshit)
- d4a83ba parser: Report duplicate modifier `Accessibility modifier
already seen.` (#9890) (Boshen)
- 59c8f71 parser,codegen: Handle lone surrogate in string literal
(#9918) (Boshen)

### Bug Fixes

- 28a2ed3 estree/ast: Fix `IdentifierName` and `IdentifierReference`
(#9863) (hi-ogawa)
- 3d4c5f3 semantic: Correctly visit `IfStmt` `test` when building cfg
(#9864) (camc314)
- 1774225 transformer/using: Incorrect scope ids for bindings (#9871)
(camc314)- 68018e1 Ast changes (Boshen)

### Performance

- 5f97f28 ast/estree: Speed up raw deser for `JSXElement` (#9895)
(overlookmotel)
- b272893 mangler, minifier: Initialize a Vec with a specific value
using `Vec::from_iter_in` combined with `repeat_with` (#9908) (Dunqing)
- f7d078c semantic: Use `reserve_exact` instead of `reserve` to save
memory in pre-reserve (#9910) (Dunqing)

### Documentation

- 590a258 napi/parser: Add stackblitz link for wasm build (Boshen)

### Refactor

- 62e2859 ast/ast_builder: Use `self.vec_from_iter` instead of
`Vec::from_iter_in` for consistency (#9909) (Dunqing)
- b2f3d23 isolated_declarations: Remove unused `self` params (#9868)
(overlookmotel)
- 961b95d napi: Move common code to `oxc_napi` (#9875) (Boshen)
- 233c1fc napi/playground: Add JSON.parse wrapper (#9880) (Hiroshi
Ogawa)
- dbe61c5 transformer/module-runner-transform: Remove redundant
converison (#9912) (Dunqing)
- ecdfe2e transformer/using: Move work to `exit_static_block` (#9713)
(camc314)

### Testing

- 9314147 data_structures: Enable doc tests for `oxc_data_structures`
crate (#9884) (overlookmotel)
- 040e993 napi: Refactor NAPI parser benchmarks (#9911) (overlookmotel)
- e637e2e napi/parser: Tweak vitest config (#9878) (Hiroshi Ogawa)

Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com>
2025-03-20 20:06:21 +08:00
Boshen 6565fc4261 feat(napi): feature gate allocator (#9921)
Rolldown already has allocator enabled, double allocator is a compile error.
2025-03-20 11:40:08 +00:00
Boshen 2cedfe4148 feat(napi): add codeframe to napi error (#9893)
closes #8684
2025-03-19 08:41:31 +00:00
Hiroshi Ogawa e637e2edcf test(napi/parser): tweak vitest config (#9878)
- fixed `@vitest/browser` version mismatch
- removed `--typecheck` since `tsc` catches same errors (and honestly
vitest typecheck mode is not so intuitive 🙃)
- added `diff.expand: false` since raw transfer mismatch is huge (we
might change the default on Vitest side
https://github.com/vitest-dev/vitest/pull/7697)
2025-03-19 09:28:45 +08:00
Boshen 961b95d834 refactor(napi): move common code to oxc_napi (#9875) 2025-03-18 16:06:53 +00:00
oxc-bot 9baa7568f8 release(crates): v0.60.0 (#9861) 2025-03-18 17:01:17 +08:00
Boshen aa3dff887a feat(napi): add mimalloc to parser and transformr (#9859) 2025-03-18 16:51:37 +08:00
hi-ogawa 7106e5dc0f refactor(napi): disable unused browser fs (#9848)
I don't think file access is needed for napi packages. I've already disabled this on napi/playground.
2025-03-18 05:53:21 +00:00
oxc-bot 7cfe1a5e01 release(crates): v0.59.0 (#9850) 2025-03-18 13:50:33 +08:00
oxc-bot 7856a0b091 release(crates): v0.58.1 (#9754)
## [0.58.1] - 2025-03-13

### Features

- a8331f7 transformer: Turn off explicit resource management by default
(#9749) (Boshen)

### Bug Fixes

- cd3f2fb ast/estree: Fix `JSXOpeningFragment` (#9747) (Hiroshi Ogawa)
- fecec56 ast/estree: Fix `JSXOpeningElement` field order (#9746)
(hi-ogawa)

Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com>
2025-03-13 20:34:27 +08:00
Boshen a8331f7b49 feat(transformer): Turn off explicit resource management by default (#9749) 2025-03-13 11:09:20 +00:00
oxc-bot 38d1302267 release(crates): v0.58.0 (#9740) 2025-03-13 16:58:56 +08:00
Dunqing 3429898cc5 feat(transformer/module_runner_transform): remove duplicate deps and dynamicDeps (#9709)
I found that the import source can be repeated, so it seems like removing the duplicate `deps` and `dynamicDeps` would be better, but I am not sure it is worth doing it.
2025-03-12 09:27:53 +00:00
oxc-bot 8d18dc4207 release(crates): v0.57.0 (#9668)
## [0.57.0] - 2025-03-11

- 510446a parser: [**BREAKING**] Align JSXNamespacedName with ESTree
(#9648) (Arnaud Barré)

- b0d979d semantic: [**BREAKING**] Make `Scoping::references` private
(#9629) (Boshen)

- 3c6f140 semantic: [**BREAKING**] Make `Scoping` methods consistent
(#9628) (Boshen)

- ef6e0cc semantic: [**BREAKING**] Combine `SymbolTable` and `ScopeTree`
into `Scoping` (#9615) (Boshen)

- 7331656 semantic: [**BREAKING**] Rename `SymbolTable` and `ScopeTree`
methods (#9613) (Boshen)

- 23738bf semantic: [**BREAKING**] Introduce `Scoping` (#9611) (Boshen)

### Features

- b6deff8 ecmascript: Support integer index access for array and string
in `may_have_side_effects` (#9603) (sapphi-red)
- 047fb01 minifier: Place `void 0` on right hand side if possible
(#9606) (sapphi-red)
- 36f8703 minifier: Compress `[] + string` to `string` (#9602)
(sapphi-red)
- 554c4ce minifier: Compress constant integer index access (#9604)
(sapphi-red)
- e3c2015 minifier: Allow compressing computed __proto__ more precisely
(#9595) (sapphi-red)
- 6a57198 minifier: Allow compressing computed constructor/prototype
keys precisely (#9594) (sapphi-red)
- 638007b parser: Apply `preserveParens` to `TSParenthesizedType`
(#9653) (Boshen)

### Bug Fixes

- eae1a41 ast: Align `TSImportType` field names with ts-eslint (#9664)
(Boshen)
- 96eef8b ecmascript: `(foo() + "").length` may have a side effect
(#9605) (sapphi-red)
- 24d9261 minifier: Remove names from functions / classes in normal pass
to make the minifier idempotent (#9608) (sapphi-red)
- 6ac3635 napi/parser: Disable raw transfer on unsupported platforms
(#9651) (overlookmotel)
- cfdcfdb parser: Fix end span for optional binding pattern without type
annotation (#9652) (Boshen)
- 26da65d parser: Parse asi after class accessor property (#9623)
(Boshen)
- 87462fd parser: Fix end span for `using` declaration (#9622) (Boshen)
- 29edb51 transformer: Fix module runner transform of export default
expression (#9661) (hi-ogawa)

### Documentation

- 31a2618 allocator: Add safety constraint for
`String::from_raw_parts_in` (#9640) (overlookmotel)

### Refactor

- 44101bd allocator: Refactor and improve safty comments of
`String::from_strs_array_in` (#9639) (overlookmotel)
- c6edafe napi: Remove `npm/oxc-*/` npm packages (#9631) (Boshen)
- a43c341 semantic: Add `Scoping` to `Semantic` (#9614) (Boshen)

Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com>
2025-03-11 12:05:56 +08:00
Boshen c6edafe08d refactor(napi): remove npm/oxc-*/ npm packages (#9631)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-03-09 22:43:06 +08:00
Boshen 23738bf9db refactor(semantic)!: introduce Scoping (#9611)
part of #9607
2025-03-09 10:28:11 +00:00
oxc-bot 0ab76bf129 release(crates): v0.56.5 (#9593)
## [0.56.5] - 2025-03-07

### Refactor

- 5103322 semantic: Move `IsGlobalReference` to its own file (#9592)
(Boshen)
- b7484b8 semantic: Remove `CompactStr` usage from `ClassTable` (#9591)
(Boshen)

Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com>
2025-03-07 23:34:02 +08:00
oxc-bot 5352483965 release(crates): v0.56.4 (#9589)
## [0.56.4] - 2025-03-07

### Bug Fixes

- c08b7fc napi: Commit wasi files (Boshen)
- 35626a4 npm: Change to `wasm32-wasip1-threads` target (Boshen)

### Refactor

- 62bffed rust: Allow a few annoying clippy rules (#9588) (Boshen)
- adf7987 transformer: Combine strings by `ctx.ast.atom_from_array`
(#9401) (Dunqing)

Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com>
2025-03-07 20:30:37 +08:00
Boshen c08b7fc0ce fix(napi): commit wasi files 2025-03-07 19:53:33 +08:00
oxc-bot 48fa01cba5 release(crates): v0.56.3 (#9587) 2025-03-07 17:35:32 +08:00
oxc-bot f82cbeea74 release(crates): v0.56.2 (#9584) 2025-03-07 15:31:20 +08:00
oxc-bot 109d06626d release(crates): v0.56.1 (#9582) 2025-03-07 12:02:05 +08:00
Boshen 0bbb197c87 ci(npm): rework release pipeline (#9581) 2025-03-07 11:49:50 +08:00
oxc-bot 64080ee745 release(crates): v0.56.0 (#9572) 2025-03-06 09:47:22 +08:00
oxc-bot 4d973040c8 release(crates): v0.55.0 (#9554) 2025-03-05 14:19:54 +08:00
Dunqing ffd485c74c feat(transformer, napi/transform): expose moduleRunnerTransform function (#9532)
Expose a `moduleRunnerTransform` function that `Vite` can directly use it to speed-up ssr transform. In this way, `Vitest` also benefits without having to wait for `rolldown-vite`.
2025-03-04 14:53:51 +00:00
Dunqing 45ace4419b feat(transformer): add /* @_PURE__ */ annotation for pure calls (#9424)
close: #6072

Many tests outputs are updated because we need to print `/* @_PURE__ */` for the pure calls.
2025-03-04 06:13:21 +00:00
oxc-bot 7bfb6076b5 release(crates): v0.54.0 (#9524)
## [0.54.0] - 2025-03-04

- 098f652 codegen: [**BREAKING**] Add `CommentAnnotation` to avoid
parsing comments again (#9506) (Boshen)

- a8d1d48 parser,codegen: [**BREAKING**] Parse and
print`#__NO_SIDE_EFFECTS__` (#9496) (Boshen)

- 355a4db napi/parser: [**BREAKING**] Remove `parse_without_return` API
(#9455) (Boshen)

- a5cde10 visit_ast: [**BREAKING**] Add `oxc_visit_ast` crate (#9428)
(Boshen)

- abb15e0 ast: [**BREAKING**] Add `pure` field to `Function`,
`CallExpression`, and `NewExpression` (#9207) (overlookmotel)

### Features

- a9f0d2b ast_tools: Generate field offset assertions for more types
(#9449) (overlookmotel)
- 64f4a82 ecmascript: Handle pure call expression in chain expressions
(#9480) (sapphi-red)
- 32139d2 ecmascript: Support `/* @__PURE__ */` in may_have_side_effects
(#9409) (sapphi-red)
- f5453f6 minifier: Flatten spread args in new expressions (#9512)
(sapphi-red)
- f8073f3 minifier: Support if with side effects in dead code
elimination (#9502) (sapphi-red)
- 10eb8f7 minifier: Use `remove_unused_expression` in
`try_fold_sequence_expression` in `remove_dead_code` (#9467)
(sapphi-red)
- 70916db minifier: Remove unused expression in for init and update
(#9466) (sapphi-red)
- 26fde56 minifier: Inline simple IIFEs in `remove_unused_expression`
(#9465) (sapphi-red)
- ec2193e minifier: Support extracting arguments in pure calls in
`remove_unused_expression` (#9463) (sapphi-red)
- 007051c minifier: Compress `a != null && a.b()` to `a?.b()` in
`remove_unused_expression` (#9459) (sapphi-red)
- 50fce20 minifier: Support binary expression in
`remove_unused_expression` (#9456) (sapphi-red)
- ed9ede3 minifier: Support conditional expression in
`remove_unused_expression` (#9432) (sapphi-red)
- 3520538 minifier: Support object expression in
`remove_unused_expression` (#9430) (sapphi-red)
- fb8a93d minifier: Improve array expression handling in
`remove_unused_expression` (#9427) (sapphi-red)
- ff477cd minifier: Support template literals in
`remove_unused_expression` (#9426) (sapphi-red)
- 0d26113 minifier: Compress `/* @__PURE__ */ a() ? b : b` to `b`
(#9410) (sapphi-red)
- 68c77c8 napi/parser: Return semantic errors (#9460) (Boshen)
- 7d7f16c parser: Apply pure to rhs of binary expression (#9492)
(Boshen)
- 2a08b14 parser: Support V8 intrinsics (#9379) (injuly)
- 9b7017c parser,codegen: Pure annotations (#9351) (Boshen)
- aa06932 transformer: Support `ModuleRunnerTransform` (#9371) (Dunqing)

### Bug Fixes

- 75f06ad codegen: Do not print comments when only `annotation_comments`
is enabled (#9518) (Dunqing)
- f5bbd5d ecmascript: Fix toString for negative numbers (#9508)
(sapphi-red)
- d2cd975 ecmascript: Fix may_have_side_effects for `${a() === b}`
(#9478) (sapphi-red)
- 584d847 ecmascript: Objects passed to template literals may have side
effects (#9425) (sapphi-red)
- b371fdc estree/ast: Camel-case `typeAnnotation` field (#9420)
(overlookmotel)
- 1fff993 minifier: Correctly remove dead code in `try` with `finally`
(#9503) (sapphi-red)
- 0b96ebe minifier: Don't inline IIFE with parameters (#9477)
(sapphi-red)
- 071c84c minifier: Skip `try_fold_stmt_in_boolean_context` on
`ExpressionStatement` (#9458) (sapphi-red)
- 306284d minifier: Call mark_current_function_as_changed in
remove_unused_expression (#9457) (sapphi-red)
- 9c6ae9f parser: `@__NO_SIDE_EFFECTS` only affects const variable decl
(#9517) (Boshen)
- b7d5513 parser: Parse `@__NO_SIDE_EFFECTS__` between `export default`
and `async function` (#9514) (Boshen)
- 01de74c parser: Correctly fail parsing when parsing `foo.bar?.`
(#9499) (camc314)
- 58defe3 parser: Mark expression as pure in chain expression (#9479)
(sapphi-red)
- 2a03689 parser: Mark expressions on the left side of logical and
conditional expressions as pure (#9414) (sapphi-red)
- 7fde233 transformer/legacy-decorator: Incorrect check for potentially
non-existent ident (#9491) (Dunqing)
- b4f050c transformer/legacy-decorator: Metadata incorrectly wrapped by
decorateParam (#9490) (Dunqing)
- 5f67fa9 transformer/optional-chaning: Keep `this` when transforming
`this.f?.()` (#9505) (camc314)

### Performance

- 10e4431 ast/estree: Skip escaping identifiers (#9398) (overlookmotel)
- b0a0a82 ast/estree: Reduce overhead serializing static strings (#9396)
(overlookmotel)
- 27a8e50 isolated_declarations: Reserve sufficient capacity in
statements `Vec` (#9394) (overlookmotel)

### Refactor

- 8916335 ast/estree: Convert enums with converters on variants (#9438)
(overlookmotel)
- dcff40c ast_tools: Generate layout assertions in multiple crates
(#9448) (overlookmotel)
- 19c4835 codegen: Simplify printing comments between arguments in
call-like expressions (#9501) (Dunqing)
- c880481 isolated_declarations: Rename var (#9390) (overlookmotel)
- 37e41f0 isolated_declarations: Use aliases `ArenaBox` / `ArenaVec`
(#9389) (overlookmotel)
- bbb450c minifier: Move `a != null && b` -> `a ?? b` compression to
`remove_unused_expression` (#9468) (sapphi-red)
- b93774c minifier: Move `try_fold_iife` to `remove_unused_expression`
(#9464) (sapphi-red)
- 96a9719 minifier: Use `may_have_side_effects` in
`remove_unused_expression` (#9413) (sapphi-red)

### Testing

- c187b11 ecmascript: Add comments and tests for cases where
`ToPropertyKey` throws an error (#9429) (sapphi-red)
- d129055 napi: Add tests for worker threads (#9408) (Boshen)
- 48d51e3 napi: Add tests for `hashbang` field (#9386) (overlookmotel)

Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com>
2025-03-04 08:42:28 +08:00
Dunqing b4f050cf58 fix(transformer/legacy-decorator): metadata incorrectly wrapped by decorateParam (#9490)
close: https://github.com/rolldown/rolldown/issues/3728#issuecomment-2693097569

Before, we need to make sure all metadata decorators are placed after parameter decorators. I tried to push them to the last parameter decorators. But it caused it to be incorrectly wrapped by `decorateParam`.

I re-check decorate helper implementation, I didn't see any potential runtime will caused by the decorators order. So I decide to always push to method's decorators

Before:
```js
_decorate([
  _decorateParam(0, dce),
  _decorateParam(0, _decorateMetadata("design:type", Function)),
  _decorateParam(0, _decorateMetadata("design:paramtypes", [Object])),
  _decorateParam(0, _decorateMetadata("design:returntype", void 0))
], C.prototype, "method", null);
```

After:
```js
_decorate([
  _decorateMetadata("design:type", Function),
  _decorateMetadata("design:paramtypes", [Object]),
  _decorateMetadata("design:returntype", void 0),
  _decorateParam(0, dce)
], C.prototype, "method", null);
```
2025-03-03 04:08:32 +00:00
Boshen d129055dc6 test(napi): add tests for worker threads (#9408)
There are user code which may crash under some random circumstances
that we don't understand. Prevent these crashes with a test.
2025-02-27 07:19:11 +00:00