Skip to content

Move all runtime helpers to individual files#16495

Merged
nicolo-ribaudo merged 10 commits intobabel:mainfrom
nicolo-ribaudo:helpers-refactor
May 16, 2024
Merged

Move all runtime helpers to individual files#16495
nicolo-ribaudo merged 10 commits intobabel:mainfrom
nicolo-ribaudo:helpers-refactor

Conversation

@nicolo-ribaudo
Copy link
Copy Markdown
Member

@nicolo-ribaudo nicolo-ribaudo commented May 15, 2024

Q                       A
Fixed Issues? Fixes #1, Fixes #2
Patch: Bug Fix?
Major: Breaking Change?
Minor: New Feature?
Tests Added + Pass? Yes
Documentation PR Link
Any Dependency Changes?
License MIT

After this PR, since there is a build step for all helpers, I plan to move

function getHelperMetadata(file: File): HelperMetadata {
to be done at build-time rather than at runtime.

This PR caught a problem with our Babel7/8 integration tests: some tests fail because the helpers are missing (for example, old decorator helpers), but we didn't notice because we where generating those helpers even in Babel 8 mode during the test.

@nicolo-ribaudo nicolo-ribaudo added the PR: Internal 🏠 A type of pull request used for our changelog categories label May 15, 2024
"./helpers/AsyncGenerator.js"
],
"./helpers/esm/AsyncGenerator": "./helpers/esm/AsyncGenerator.js",
"./helpers/AwaitValue": [
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These package.json files are now just sorted alphabetically, but the contents are the same.

@babel-bot
Copy link
Copy Markdown
Collaborator

babel-bot commented May 15, 2024

Build successful! You can test your changes in the REPL here: https://babeljs.io/repl/build/56904

@nicolo-ribaudo nicolo-ribaudo force-pushed the helpers-refactor branch 2 times, most recently from cf1de47 to 624ef72 Compare May 15, 2024 15:55
Copy link
Copy Markdown
Member

@liuxingbaoyu liuxingbaoyu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe it would be better to keep Object.freeze(helpers)?

@nicolo-ribaudo
Copy link
Copy Markdown
Member Author

In tests we mutate the helpers object to add fake helpers, so unfortunately it doesn't work. The final helpers object was already unfrozen, because we spread the frozen object into a non-frozen one.

@nicolo-ribaudo
Copy link
Copy Markdown
Member Author

I'll open a good first issue to convert the helpers to TS (in chunks)

@nicolo-ribaudo nicolo-ribaudo merged commit db3e9a6 into babel:main May 16, 2024
@nicolo-ribaudo nicolo-ribaudo deleted the helpers-refactor branch May 16, 2024 13:32
Vylpes pushed a commit to Vylpes/random-bunny that referenced this pull request Jun 10, 2024
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@babel/traverse](https://babel.dev/docs/en/next/babel-traverse) ([source](https://github.com/babel/babel)) | resolutions | patch | [`7.24.1` -> `7.24.7`](https://renovatebot.com/diffs/npm/@babel%2ftraverse/7.24.1/7.24.7) |

---

### Release Notes

<details>
<summary>babel/babel (@&#8203;babel/traverse)</summary>

### [`v7.24.7`](https://github.com/babel/babel/blob/HEAD/CHANGELOG.md#v7247-2024-06-05)

[Compare Source](babel/babel@v7.24.6...v7.24.7)

##### 🐛 Bug Fix

-   `babel-node`
    -   [#&#8203;16554](babel/babel#16554) Allow extra flags in babel-node ([@&#8203;nicolo-ribaudo](https://github.com/nicolo-ribaudo))
-   `babel-traverse`
    -   [#&#8203;16522](babel/babel#16522) fix: incorrect `constantViolations` with destructuring ([@&#8203;liuxingbaoyu](https://github.com/liuxingbaoyu))
-   `babel-helper-transform-fixture-test-runner`, `babel-plugin-proposal-explicit-resource-management`
    -   [#&#8203;16524](babel/babel#16524) fix: Transform `using` in `switch` correctly ([@&#8203;liuxingbaoyu](https://github.com/liuxingbaoyu))

##### 🏠 Internal

-   `babel-helpers`, `babel-runtime-corejs2`, `babel-runtime-corejs3`, `babel-runtime`
    -   [#&#8203;16525](babel/babel#16525) Delete unused array helpers ([@&#8203;blakewilson](https://github.com/blakewilson))

### [`v7.24.6`](https://github.com/babel/babel/blob/HEAD/CHANGELOG.md#v7246-2024-05-24)

[Compare Source](babel/babel@v7.24.5...v7.24.6)

##### 🐛 Bug Fix

-   `babel-helper-create-class-features-plugin`, `babel-plugin-transform-class-properties`
    -   [#&#8203;16514](babel/babel#16514) Fix source maps for private member expressions ([@&#8203;nicolo-ribaudo](https://github.com/nicolo-ribaudo))
-   `babel-core`, `babel-generator`, `babel-plugin-transform-modules-commonjs`
    -   [#&#8203;16515](babel/babel#16515) Fix source maps for template literals ([@&#8203;nicolo-ribaudo](https://github.com/nicolo-ribaudo))
-   `babel-helper-create-class-features-plugin`, `babel-plugin-proposal-decorators`
    -   [#&#8203;16485](babel/babel#16485) Support undecorated static accessor in anonymous classes ([@&#8203;JLHwung](https://github.com/JLHwung))
    -   [#&#8203;16484](babel/babel#16484) Fix decorator bare yield await ([@&#8203;JLHwung](https://github.com/JLHwung))
-   `babel-helpers`, `babel-plugin-proposal-decorators`, `babel-runtime-corejs3`
    -   [#&#8203;16483](babel/babel#16483) Fix: throw TypeError if addInitializer is called after finished ([@&#8203;JLHwung](https://github.com/JLHwung))
-   `babel-parser`, `babel-plugin-transform-typescript`
    -   [#&#8203;16476](babel/babel#16476) fix: Correctly parse `cls.fn<C> = x` ([@&#8203;liuxingbaoyu](https://github.com/liuxingbaoyu))

##### 🏠 Internal

-   `babel-core`, `babel-helpers`, `babel-plugin-transform-runtime`, `babel-preset-env`, `babel-runtime-corejs2`, `babel-runtime-corejs3`, `babel-runtime`
    -   [#&#8203;16501](babel/babel#16501) Generate helper metadata at build time ([@&#8203;nicolo-ribaudo](https://github.com/nicolo-ribaudo))
-   `babel-helpers`
    -   [#&#8203;16499](babel/babel#16499) Add `tsconfig.json` for `@babel/helpers/src/helpers` ([@&#8203;nicolo-ribaudo](https://github.com/nicolo-ribaudo))
-   `babel-cli`, `babel-helpers`, `babel-plugin-external-helpers`, `babel-plugin-proposal-decorators`, `babel-plugin-transform-class-properties`, `babel-plugin-transform-modules-commonjs`, `babel-plugin-transform-modules-systemjs`, `babel-plugin-transform-runtime`, `babel-preset-env`, `babel-runtime-corejs2`, `babel-runtime-corejs3`, `babel-runtime`
    -   [#&#8203;16495](babel/babel#16495) Move all runtime helpers to individual files ([@&#8203;nicolo-ribaudo](https://github.com/nicolo-ribaudo))
-   `babel-parser`, `babel-traverse`
    -   [#&#8203;16482](babel/babel#16482) Statically generate boilerplate for bitfield accessors ([@&#8203;nicolo-ribaudo](https://github.com/nicolo-ribaudo))
-   Other
    -   [#&#8203;16466](babel/babel#16466) Migrate import assertions syntax ([@&#8203;JLHwung](https://github.com/JLHwung))

### [`v7.24.5`](https://github.com/babel/babel/blob/HEAD/CHANGELOG.md#v7245-2024-04-29)

[Compare Source](babel/babel@v7.24.1...v7.24.5)

##### 🐛 Bug Fix

-   `babel-plugin-transform-classes`, `babel-traverse`
    -   [#&#8203;16377](babel/babel#16377) fix: TypeScript annotation affects output ([@&#8203;liuxingbaoyu](https://github.com/liuxingbaoyu))
-   `babel-helpers`, `babel-plugin-proposal-explicit-resource-management`, `babel-runtime-corejs3`
    -   [#&#8203;16440](babel/babel#16440) Fix suppressed error order ([@&#8203;sossost](https://github.com/sossost))
    -   [#&#8203;16408](babel/babel#16408) Await nullish async disposable ([@&#8203;JLHwung](https://github.com/JLHwung))

##### 💅 Polish

-   `babel-parser`
    -   [#&#8203;16407](babel/babel#16407) Recover from exported `using` declaration ([@&#8203;JLHwung](https://github.com/JLHwung))

##### 🏠 Internal

-   Other
    -   [#&#8203;16414](babel/babel#16414) Relax ESLint peerDependency constraint to allow v9 ([@&#8203;liuxingbaoyu](https://github.com/liuxingbaoyu))
-   `babel-parser`
    -   [#&#8203;16425](babel/babel#16425) Improve `@babel/parser` AST types ([@&#8203;nicolo-ribaudo](https://github.com/nicolo-ribaudo))
    -   [#&#8203;16417](babel/babel#16417) Always pass type argument to `.startNode` ([@&#8203;nicolo-ribaudo](https://github.com/nicolo-ribaudo))
-   `babel-helper-create-class-features-plugin`, `babel-helper-member-expression-to-functions`, `babel-helper-module-transforms`, `babel-helper-split-export-declaration`, `babel-helper-wrap-function`, `babel-helpers`, `babel-plugin-bugfix-firefox-class-in-computed-class-key`, `babel-plugin-proposal-explicit-resource-management`, `babel-plugin-transform-block-scoping`, `babel-plugin-transform-destructuring`, `babel-plugin-transform-object-rest-spread`, `babel-plugin-transform-optional-chaining`, `babel-plugin-transform-parameters`, `babel-plugin-transform-private-property-in-object`, `babel-plugin-transform-react-jsx-self`, `babel-plugin-transform-typeof-symbol`, `babel-plugin-transform-typescript`, `babel-traverse`
    -   [#&#8203;16439](babel/babel#16439) Make `NodePath<T | U>` distributive ([@&#8203;nicolo-ribaudo](https://github.com/nicolo-ribaudo))
-   `babel-plugin-proposal-partial-application`, `babel-types`
    -   [#&#8203;16421](babel/babel#16421) Remove `JSXNamespacedName` from valid `CallExpression` args ([@&#8203;nicolo-ribaudo](https://github.com/nicolo-ribaudo))
-   `babel-plugin-transform-class-properties`, `babel-preset-env`
    -   [#&#8203;16406](babel/babel#16406) Do not load unnecessary Babel 7 syntax plugins in Babel 8 ([@&#8203;nicolo-ribaudo](https://github.com/nicolo-ribaudo))

##### 🏃‍♀️ Performance

-   `babel-helpers`, `babel-preset-env`, `babel-runtime-corejs3`
    -   [#&#8203;16357](babel/babel#16357) Performance: improve `objectWithoutPropertiesLoose` on V8 ([@&#8203;romgrk](https://github.com/romgrk))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4wLjAiLCJ1cGRhdGVkSW5WZXIiOiIzNy4wLjAiLCJ0YXJnZXRCcmFuY2giOiJkZXZlbG9wIn0=-->

Reviewed-on: https://git.vylpes.xyz/RabbitLabs/random-bunny/pulls/173
Co-authored-by: Renovate Bot <renovate@vylpes.com>
Co-committed-by: Renovate Bot <renovate@vylpes.com>
@github-actions github-actions bot added the outdated A closed issue/PR that is archived due to age. Recommended to make a new issue label Aug 16, 2024
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Aug 16, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area: helpers outdated A closed issue/PR that is archived due to age. Recommended to make a new issue PR: Internal 🏠 A type of pull request used for our changelog categories

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants