-
-
Notifications
You must be signed in to change notification settings - Fork 454
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(transformer): only run typescript plugin for typescript source #6889
fix(transformer): only run typescript plugin for typescript source #6889
Conversation
Your org has enabled the Graphite merge queue for merging into mainAdd the label “0-merge” to the PR and Graphite will automatically add it to the merge queue when it’s ready to merge. Or use the label “hotfix” to add to the merge queue as a hot fix. You must have a Graphite account and log in to Graphite in order to use the merge queue. Sign up using this link. |
This stack of pull requests is managed by Graphite. Learn more about stacking. |
d106fa0
to
15cf758
Compare
CodSpeed Performance ReportMerging #6889 will degrade performances by 3.2%Comparing Summary
Benchmarks breakdown
|
15cf758
to
f6555ea
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
⚡
transformer[RadixUIAdoptionSection.jsx]
157.6 µs 152.8 µs +3.1%
❌transformer[checker.ts]
18.7 ms 19.3 ms -3.18%
I assume the regression for checker.ts
is the cost of the extra "is TS enabled?" checks. We may be able to make those checks cheaper by using an is_ts_enabled
boolean flag instead. But, as you said in #6865 (comment), we also want to avoid constructing the TS transformer if it's disabled - that setup cost will be significant for small JS files.
We should probably look at how transforms are constructed, and how options are stored, for all the transforms together once we've completed the rest of the ES6 transforms. We can probably gain some perf by refactoring it, one way or another.
But for now I say merge it! It speeds up all the benchmarks except checker.ts
, and fixes loads of tests.
Merge activity
|
f6555ea
to
4dc5e51
Compare
## [0.34.0] - 2024-10-26 - 4618aa2 transformer: [**BREAKING**] Rename `TransformerOptions::react` to `jsx` (#6888) (Boshen) - 90c786c regular_expression: [**BREAKING**] Support ES2025 Duplicated named capture groups (#6847) (leaysgur) - 67a7bde napi/parser: [**BREAKING**] Add typings to napi/parser (#6796) (ottomated) ### Features - 1145341 ast_tools: Output typescript to a separate package (#6755) (ottomated) - 4429754 ecmascript: Constant eval `null` to number (#6879) (Boshen) - fd57e00 ecmascript: Add abstract_relational_comparison to dce (#6846) (Boshen) - 8bcaf59 minifier: Late peeophole optimization (#6882) (Boshen) - 860cbca minifier: Implement folding simple arrow fns (#6875) (camc314) - c26020e minifier: Implement folding String.prototype.replaceAll (#6871) (camc314) - 50744f3 minifier: Implement folding String.prototype.replace (#6870) (camc314) - fccf82e minifier: Implement folding `substring` string fns (#6869) (camc314) - e6a5a1b minifier: Implement folding `charCodeAt` string fns (#6475) (camc314) - 0d0bb17 transformer: Complete the async-to-generator plugin (#6658) (Dunqing) - 419343b traverse: Implement `GetAddress` for `Ancestor` (#6877) (overlookmotel) ### Bug Fixes - a47c70e minifier: Fix remaining runtime bugs (#6855) (Boshen) - 686727f minifier: Reference read has side effect (#6851) (Boshen) - c658d93 minifier: Keep template literals with expressions (#6849) (Boshen) - 4dc5e51 transformer: Only run typescript plugin for typescript source (#6889) (Boshen) - 076f5c3 transformer/typescript: Retain ExportNamedDeclaration without specifiers and declaration (#6848) (Dunqing) - b075982 types: Change @oxc/types package name (#6874) (ottomated) ### Documentation - 6eeb0e6 ast: Mention typescript-eslint, field ordering and shape (#6863) (Boshen) - 99e3b32 napi: Remove JSON.parse from example (#6836) (ottomated) ### Refactor - adb5039 allocator: Add `impl GetAddress for Address` (#6891) (overlookmotel) - 3e7507f ast_tools: Reduce macro usage (#6895) (overlookmotel) - 423d54c rust: Remove the annoying `clippy::wildcard_imports` (#6860) (Boshen) - 2d95009 transformer: Implement `Debug` on `StatementInjector` internal types (#6886) (overlookmotel) - c383c34 transformer: Make `StatementInjectorStore` methods generic over `GetAddress` (#6885) (overlookmotel) - 1f29523 transformer: Rename ReactJsx to Jsx (#6883) (Boshen) - 333b758 transformer: `StatementInjectorStore` methods take `&Statement` as target (#6858) (overlookmotel) - c19996c transformer: Add `StatementInjectorStore::insert_many_before` method (#6857) (overlookmotel) - 7339dde transformer: `StatementInjectorStore::insert_many_after` take an iterator (#6856) (overlookmotel) - 4348eae transformer/typescript: Re-order visitor methods (#6864) (overlookmotel) - 3a56d59 transformer/typescript: Insert assignments after super by `StatementInjector` (#6654) (Dunqing) - a366fae traverse: Rename `TraverseScoping::generate_binding_in_current_scope` (#6832) (overlookmotel) - 3b99fe6 traverse: Move `generate_binding` to `TraverseScoping` (#6831) (overlookmotel) - 60f487a traverse: `TraverseCtx::generate_binding` take an `Atom` (#6830) (overlookmotel) ### Styling - 262b2ed ast: Move crate doc comment to top of file (#6890) (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>
…xc-project#6889) closes oxc-project#6865 TypeScript plugin changes import / export statements so it needs to be turned off for non-typescript files. This should also give a little performance boost for non-typescript files.
## [0.34.0] - 2024-10-26 - 4618aa2 transformer: [**BREAKING**] Rename `TransformerOptions::react` to `jsx` (oxc-project#6888) (Boshen) - 90c786c regular_expression: [**BREAKING**] Support ES2025 Duplicated named capture groups (oxc-project#6847) (leaysgur) - 67a7bde napi/parser: [**BREAKING**] Add typings to napi/parser (oxc-project#6796) (ottomated) ### Features - 1145341 ast_tools: Output typescript to a separate package (oxc-project#6755) (ottomated) - 4429754 ecmascript: Constant eval `null` to number (oxc-project#6879) (Boshen) - fd57e00 ecmascript: Add abstract_relational_comparison to dce (oxc-project#6846) (Boshen) - 8bcaf59 minifier: Late peeophole optimization (oxc-project#6882) (Boshen) - 860cbca minifier: Implement folding simple arrow fns (oxc-project#6875) (camc314) - c26020e minifier: Implement folding String.prototype.replaceAll (oxc-project#6871) (camc314) - 50744f3 minifier: Implement folding String.prototype.replace (oxc-project#6870) (camc314) - fccf82e minifier: Implement folding `substring` string fns (oxc-project#6869) (camc314) - e6a5a1b minifier: Implement folding `charCodeAt` string fns (oxc-project#6475) (camc314) - 0d0bb17 transformer: Complete the async-to-generator plugin (oxc-project#6658) (Dunqing) - 419343b traverse: Implement `GetAddress` for `Ancestor` (oxc-project#6877) (overlookmotel) ### Bug Fixes - a47c70e minifier: Fix remaining runtime bugs (oxc-project#6855) (Boshen) - 686727f minifier: Reference read has side effect (oxc-project#6851) (Boshen) - c658d93 minifier: Keep template literals with expressions (oxc-project#6849) (Boshen) - 4dc5e51 transformer: Only run typescript plugin for typescript source (oxc-project#6889) (Boshen) - 076f5c3 transformer/typescript: Retain ExportNamedDeclaration without specifiers and declaration (oxc-project#6848) (Dunqing) - b075982 types: Change @oxc/types package name (oxc-project#6874) (ottomated) ### Documentation - 6eeb0e6 ast: Mention typescript-eslint, field ordering and shape (oxc-project#6863) (Boshen) - 99e3b32 napi: Remove JSON.parse from example (oxc-project#6836) (ottomated) ### Refactor - adb5039 allocator: Add `impl GetAddress for Address` (oxc-project#6891) (overlookmotel) - 3e7507f ast_tools: Reduce macro usage (oxc-project#6895) (overlookmotel) - 423d54c rust: Remove the annoying `clippy::wildcard_imports` (oxc-project#6860) (Boshen) - 2d95009 transformer: Implement `Debug` on `StatementInjector` internal types (oxc-project#6886) (overlookmotel) - c383c34 transformer: Make `StatementInjectorStore` methods generic over `GetAddress` (oxc-project#6885) (overlookmotel) - 1f29523 transformer: Rename ReactJsx to Jsx (oxc-project#6883) (Boshen) - 333b758 transformer: `StatementInjectorStore` methods take `&Statement` as target (oxc-project#6858) (overlookmotel) - c19996c transformer: Add `StatementInjectorStore::insert_many_before` method (oxc-project#6857) (overlookmotel) - 7339dde transformer: `StatementInjectorStore::insert_many_after` take an iterator (oxc-project#6856) (overlookmotel) - 4348eae transformer/typescript: Re-order visitor methods (oxc-project#6864) (overlookmotel) - 3a56d59 transformer/typescript: Insert assignments after super by `StatementInjector` (oxc-project#6654) (Dunqing) - a366fae traverse: Rename `TraverseScoping::generate_binding_in_current_scope` (oxc-project#6832) (overlookmotel) - 3b99fe6 traverse: Move `generate_binding` to `TraverseScoping` (oxc-project#6831) (overlookmotel) - 60f487a traverse: `TraverseCtx::generate_binding` take an `Atom` (oxc-project#6830) (overlookmotel) ### Styling - 262b2ed ast: Move crate doc comment to top of file (oxc-project#6890) (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>
closes #6865
TypeScript plugin changes import / export statements so it needs to be turned off for non-typescript files. This should also give a little performance boost for non-typescript files.