This repository has been archived by the owner on Apr 22, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 7.3k
V8 Lateral upgrade - float V8 patch to address infinite loop #14411
Comments
misterdjules
pushed a commit
to misterdjules/node
that referenced
this issue
Apr 28, 2015
Backport b17eaaa5755e625493c5fe537f42b58838923c52 from upstream v8. Also add a regression test to make sure subsequent V8 upgrades include this floating patch if needed. Original commit message: Fix desugaring of let bindings in for loops to handle continue properly This requires putting the original loop's body inside an inner for loop (with the same labels as the original loop) and re-binding the temp variables in its "next" expression. A second flag is added to the desugared code to ensure the loop body executes at most once per loop. BUG=v8:3683 LOG=y Review URL: https://codereview.chromium.org/720863002 Cr-Commit-Position: refs/heads/master@{nodejs#25363} Fixes nodejs#9113 and nodejs#14411.
misterdjules
pushed a commit
to misterdjules/node
that referenced
this issue
Apr 28, 2015
Backport b17eaaa5755e625493c5fe537f42b58838923c52 from upstream v8. Original commit message: Fix desugaring of let bindings in for loops to handle continue properly This requires putting the original loop's body inside an inner for loop (with the same labels as the original loop) and re-binding the temp variables in its "next" expression. A second flag is added to the desugared code to ensure the loop body executes at most once per loop. BUG=v8:3683 LOG=y Review URL: https://codereview.chromium.org/720863002 Cr-Commit-Position: refs/heads/master@{nodejs#25363} Fixes nodejs#9113 and nodejs#14411.
misterdjules
pushed a commit
to misterdjules/node
that referenced
this issue
Apr 30, 2015
Backport b17eaaa5755e625493c5fe537f42b58838923c52 from upstream v8. Original commit message: Fix desugaring of let bindings in for loops to handle continue properly This requires putting the original loop's body inside an inner for loop (with the same labels as the original loop) and re-binding the temp variables in its "next" expression. A second flag is added to the desugared code to ensure the loop body executes at most once per loop. BUG=v8:3683 LOG=y Review URL: https://codereview.chromium.org/720863002 Cr-Commit-Position: refs/heads/master@{nodejs#25363} Fixes nodejs#9113 and nodejs#14411.
misterdjules
pushed a commit
that referenced
this issue
Apr 30, 2015
Backport b17eaaa5755e625493c5fe537f42b58838923c52 from upstream v8. Original commit message: Fix desugaring of let bindings in for loops to handle continue properly This requires putting the original loop's body inside an inner for loop (with the same labels as the original loop) and re-binding the temp variables in its "next" expression. A second flag is added to the desugared code to ensure the loop body executes at most once per loop. BUG=v8:3683 LOG=y Review URL: https://codereview.chromium.org/720863002 Cr-Commit-Position: refs/heads/master@{#25363} Fixes #9113 and #14411. Reviewed-By: Colin Ihrig <[email protected]> PR-URL: #23948
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
With the lateral upgrade to V8 discussed here: #9185
The following
node --harmony --use-strict -e 'for (let i = 0; i < 3; ++i) { if (i == 1) { continue; } }'
results in an infinite loop.
This is an instance of the problem reported in V8 Issue 3683 - https://code.google.com/p/v8/issues/detail?can=2&q=3683&colspec=ID%20Type%20Status%20Priority%20Owner%20Summary%20HW%20OS%20Area%20Stars&id=3683
The corresponding fix is: https://chromium.googlesource.com/v8/v8.git/+/b17eaaa5755e625493c5fe537f42b58838923c52
Cherry-picking that commit on top of 3.28.71.19 resolves the issue.
In V8 releases, the fix was rolled into 3.31.6:
commit 8b0d1187aaea32f767f0daf152434b3681c192ca
Author: v8-autoroll [email protected]
Date: Fri Nov 14 18:01:38 2014 -0800
Opening this issue to track floating this change once the lateral upgrade is in.
Along with cherry-picking the commit across we also need to add a test.
The text was updated successfully, but these errors were encountered: