Chromium Code Reviews
DescriptionFix capturing variables in optimized compilations
Third attempt. A latent bug in finally block inlining
caused the previous crashes in optimized functions.
Fix is in https://codereview.chromium.org/2004883004/.
When a local function gets compiled the second time, constant
expressions may not be parsed again, since the constant value
is found in the cache. If the expression refers to an outer
variable, it does not get captured correctly.
Fix: instead of parsing a local function repeatedly to capture
outer variables, use the local function’s context scope to mark
outer variables as captured. This fixes the bug, and makes the
compiler more efficient as well.
BUG=26453
R=rmacnak@google.com
Committed: https://github.com/dart-lang/sdk/commit/4dca5d0e012756faa08991c55098f8a566968e63
Patch Set 1 #Patch Set 2 : #
Messages
Total messages: 6 (3 generated)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||