• jochen's avatar
    Assign unique IDs to FunctionLiterals · cfebe603
    jochen authored
    They're supposed to be stable across several parse passes, so we'll also
    store them in the associated SharedFunctionInfos
    
    To achieve this, the PreParser and Parser need to generated the same number of
    FunctionLiterals. To achieve this, we teach the PreParser about desuggaring of
    class literals.
    
    For regular functions, the function IDs are assigned in the order they occur in
    the source. For arrow functions, however, we only know that it's an arrow function
    after parsing the parameter list, and so the ID assigned to the arrow function is
    larger than the IDs assigned to functions defined in the parameter list. This
    implies that we have to reset the function ID counter to before the parameter list
    when re-parsing an arrow function. To be able to do this, we store the number of
    function literals found in the parameter list of arrow functions as well.
    
    BUG=v8:5589
    
    Review-Url: https://codereview.chromium.org/2481163002
    Cr-Commit-Position: refs/heads/master@{#41309}
    cfebe603
preparser.cc 12.4 KB