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

Function body being mistakenly optimized away #5511

Open
u9g opened this issue May 9, 2024 · 2 comments
Open

Function body being mistakenly optimized away #5511

u9g opened this issue May 9, 2024 · 2 comments

Comments

@u9g
Copy link

u9g commented May 9, 2024

Rollup Version

rollup v4.17.2

Operating System (or Browser)

Browser

Node Version (if applicable)

No response

Link To Reproduction

https://rollupjs.org/repl/?version=4.17.2&shareable=JTdCJTIyZXhhbXBsZSUyMiUzQW51bGwlMkMlMjJtb2R1bGVzJTIyJTNBJTVCJTdCJTIyY29kZSUyMiUzQSUyMmltcG9ydCUyMCU3QiUyMGNvbXBhcmUlMkMlMjBMdCUyQyUyMEd0JTJDJTIwRXElMjAlN0QlMjBmcm9tJTIwJTVDJTIyLiUyRm1hdGhzLmpzJTVDJTIyJTNCJTVDbiU1Q25leHBvcnQlMjBmdW5jdGlvbiUyMG1haW4oKSUyMCU3QiU1Q24lMjAlMjBjb25zb2xlLmxvZyhjb21wYXJlKDAlMkMlMjAwJTIwJTJCJTIwNyklMjBpbnN0YW5jZW9mJTIwR3QpJTNCJTVDbiU3RCU1Q24lMjIlMkMlMjJpc0VudHJ5JTIyJTNBdHJ1ZSUyQyUyMm5hbWUlMjIlM0ElMjJtYWluLmpzJTIyJTdEJTJDJTdCJTIyY29kZSUyMiUzQSUyMmV4cG9ydCUyMGNsYXNzJTIwTHQlMjAlN0IlN0QlNUNuJTVDbmV4cG9ydCUyMGNsYXNzJTIwRXElMjAlN0IlN0QlNUNuJTVDbmV4cG9ydCUyMGNsYXNzJTIwR3QlMjAlN0IlN0QlNUNuJTVDbmV4cG9ydCUyMGZ1bmN0aW9uJTIwY29tcGFyZShhJTJDJTIwYiklMjAlN0IlNUNuJTIwJTIwbGV0JTIwJTI0JTIwJTNEJTIwYSUyMCUzRCUzRCUzRCUyMGIlM0IlNUNuJTIwJTIwaWYlMjAoJTI0KSUyMCU3QiU1Q24lMjAlMjAlMjAlMjByZXR1cm4lMjBuZXclMjBFcSgpJTNCJTVDbiUyMCUyMCU3RCUyMGVsc2UlMjAlN0IlNUNuJTIwJTIwJTIwJTIwbGV0JTIwJTI0MSUyMCUzRCUyMGElMjAlM0MlMjBiJTNCJTVDbiUyMCUyMCUyMCUyMGlmJTIwKCUyNDEpJTIwJTdCJTVDbiUyMCUyMCUyMCUyMCUyMCUyMHJldHVybiUyMG5ldyUyMEx0KCklM0IlNUNuJTIwJTIwJTIwJTIwJTdEJTIwZWxzZSUyMCU3QiU1Q24lMjAlMjAlMjAlMjAlMjAlMjByZXR1cm4lMjBuZXclMjBHdCgpJTNCJTVDbiUyMCUyMCUyMCUyMCU3RCU1Q24lMjAlMjAlN0QlNUNuJTdEJTVDbiUyMiUyQyUyMmlzRW50cnklMjIlM0FmYWxzZSUyQyUyMm5hbWUlMjIlM0ElMjJtYXRocy5qcyUyMiU3RCU1RCUyQyUyMm9wdGlvbnMlMjIlM0ElN0IlMjJvdXRwdXQlMjIlM0ElN0IlMjJmb3JtYXQlMjIlM0ElMjJlcyUyMiU3RCUyQyUyMnRyZWVzaGFrZSUyMiUzQXRydWUlN0QlN0Q=

Expected Behaviour

Properly transpile the body of the compare function, and keep Gt, Lt, Eq

Actual Behaviour

most of the compare function is mistakenly optimized away and only new Lt() remains

@u9g
Copy link
Author

u9g commented May 9, 2024

This is a recent regression from v4.16.4 to v4.17.0

@liuly0322
Copy link
Contributor

As the arguments compare(0, 0 + 7) here are all known at compile time, we can optimize some code inside function away. If the arguments here are unknown, for example repl, the function body will not be optimized.

Also, as v4.17.0 has a bug for function parameter tracking, there may be some cases compare is called with a unknown value but the compare is not deoptimized properly, can you confirm if v4.17.2 fix your problem?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants