[parser] avoid for-loop desugaring unless loop var may be captured
In https://chromium-review.googlesource.com/c/472247/, I avoided running DesugarLexicalBindingsInForStatement() if there were no lexical loop variables, the function was not resumable, and the variables are not captured by eval or a function declaration. I think it's now possible to limit this further, and only do the more extensive desugaring if there's a function declaration / eval() call in the loop body. `yield` and `await` are not an issue as those loop variables are written to the register file and not lost. This change just removes the `is_resumable()` condition. If it passes tests, I think it's safe. BUG=v8:4762, v8:5460, v8:6579 Change-Id: I92d0308ad9401c1338411bc9ae9021f978803d3a Reviewed-on: https://chromium-review.googlesource.com/563587 Commit-Queue: Caitlin Potter <caitp@igalia.com> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#46536}
Showing
Please
register
or
sign in
to comment