Skip to content

Statically generate boilerplate for bitfield accessors#16482

Merged
nicolo-ribaudo merged 4 commits intobabel:mainfrom
nicolo-ribaudo:at-bit-dec-parser
May 9, 2024
Merged

Statically generate boilerplate for bitfield accessors#16482
nicolo-ribaudo merged 4 commits intobabel:mainfrom
nicolo-ribaudo:at-bit-dec-parser

Conversation

@nicolo-ribaudo
Copy link
Copy Markdown
Member

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

There is a lot of duplicated code in how we pack parser state bits -- we can replace all of it with a decorator (that we actually transpile away to not regress on performance).

@babel-bot
Copy link
Copy Markdown
Collaborator

babel-bot commented May 7, 2024

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


export default class State {
flags: number = StateFlags.canStartJSXElement;
@bit.storage #flags: number;
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

image
Is there any special purpose for using private here?

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.

Nope, I'll revert to it being public. We can use a private on in Babel 8, since it minifies better.

@nicolo-ribaudo nicolo-ribaudo added the PR: Internal 🏠 A type of pull request used for our changelog categories label May 7, 2024
@nicolo-ribaudo nicolo-ribaudo changed the title Statically generate boilerplate for parser state accessors Statically generate boilerplate for bitfields accessors May 7, 2024
@nicolo-ribaudo nicolo-ribaudo changed the title Statically generate boilerplate for bitfields accessors Statically generate boilerplate for bitfield accessors May 7, 2024
@nicolo-ribaudo nicolo-ribaudo merged commit 3ff20b9 into babel:main May 9, 2024
@nicolo-ribaudo nicolo-ribaudo deleted the at-bit-dec-parser branch May 9, 2024 19:29
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 9, 2024
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Aug 9, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

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