DescriptionPreparse inner functions (new try)
This is an overly pessimistic approach where PreParser only keeps
track of unresolved variables, but doesn't declare anything. This
will result in context-allocating variables in the outer function
unnecessarily, if the variable names clash with variable names
used by the inner function (even if the variables are not the
same). However, we have been unable to prove that this approach
wouldn't be good enough for the practical purposes.
Fixes after the previous try ( https://codereview.chromium.org/2322243002/ ):
Keep the context-allocation decision stable when compiling fully eagerly.
Tests which exercise this functionality:
mjsunit/fixed-context-shapes-when-recompiling.js
Design document (chromium):
https://docs.google.com/a/chromium.org/document/d/1rRv5JJZ0JpOZAZN2CSUwZPFJiBAdRnTiSYhazseNHFg/edit?usp=sharing
BUG=
Committed: https://crrev.com/7c73cf32c60484cdf37c84f1d61b4640e87068d7
Cr-Commit-Position: refs/heads/master@{#39719}
Patch Set 1 #Patch Set 2 : rebased #Patch Set 3 : . #Patch Set 4 : first draft, not working... #Patch Set 5 : fixing, doesn't work #Patch Set 6 : fixes - now cctests run #Patch Set 7 : moar #Patch Set 8 : rebased #Patch Set 9 : the real fix #Patch Set 10 : add test #Patch Set 11 : updated a test which asserts the exact context shape #Patch Set 12 : more test upates #Patch Set 13 : style & cleanup #
Total comments: 14
Patch Set 14 : comments #Patch Set 15 : rebased #Patch Set 16 : rebased again #
Total comments: 1
Patch Set 17 : code review (verwaest@, adamk@) #Patch Set 18 : fixed rebase #Patch Set 19 : moar refactoring #Patch Set 20 : mindiff #Patch Set 21 : add comment #
Messages
Total messages: 44 (33 generated)
|