Skip to content
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

Inject tmp vars in the params list of IIFEs when possible #15741

Merged
merged 2 commits into from Jul 4, 2023

Conversation

nicolo-ribaudo
Copy link
Member

@nicolo-ribaudo nicolo-ribaudo commented Jul 3, 2023

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

When injecting a non-const non-initialized binding inside an IIFE, if the number of call arguments is less than or equal to the number of function parameters, we can safely inject the binding into the parameter list.

I copied this possible optimization from how ESBuild compiles optional chaining in function parameters :)
https://esbuild.github.io/try/#dAAwLjE4LjExAC0tdGFyZ2V0PWVzMjAxOQBmdW5jdGlvbiBmKHggPSBhKCk/LmIpIHt9

@nicolo-ribaudo nicolo-ribaudo added PR: Output optimization 🔬 A type of pull request used for our changelog categories pkg: traverse labels Jul 3, 2023
@babel-bot
Copy link
Collaborator

babel-bot commented Jul 3, 2023

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

Copy link
Contributor

@JLHwung JLHwung left a comment

Choose a reason for hiding this comment

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

Smart.

@nicolo-ribaudo nicolo-ribaudo merged commit 4596fe1 into babel:main Jul 4, 2023
55 checks passed
@nicolo-ribaudo nicolo-ribaudo deleted the inject-tmp-in-iife-params branch July 4, 2023 05:09
@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 Oct 4, 2023
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Oct 4, 2023
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 pkg: traverse PR: Output optimization 🔬 A type of pull request used for our changelog categories
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants