-
-
Notifications
You must be signed in to change notification settings - Fork 613
perf(transformer/typescript): reduce allocations renaming extensions #10555
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
perf(transformer/typescript): reduce allocations renaming extensions #10555
Conversation
How to use the Graphite Merge QueueAdd either label to this PR to merge it via the merge queue:
You must have a Graphite account in order to use the merge queue. Sign up using this link. An organization admin has enabled the Graphite Merge Queue in this repository. Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue. This stack of pull requests is managed by Graphite. Learn more about stacking. |
CodSpeed Instrumentation Performance ReportMerging #10555 will create unknown performance changesComparing Summary
Benchmarks breakdown
|
Merge activity
|
…10555) Small optimization. When replacing extensions in TypeScript transform, avoid allocations. * In `Remove` mode, use a slice of the original string, instead of allocating a new `Atom`. * In `Replace` mode, create an `ArenaString` directly in arena, without a temporary `String`.
bc921a4
to
10e1018
Compare
cbcbec3
to
7fcf0ac
Compare
## [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 <[email protected]>
Small optimization. When replacing extensions in TypeScript transform, avoid allocations.
Remove
mode, use a slice of the original string, instead of allocating a newAtom
.Replace
mode, create anArenaString
directly in arena, without a temporaryString
.