• Wiktor Garbacz's avatar
    [parse tasks] Fix arrow function parameters handling. · 9a572e1d
    Wiktor Garbacz authored
    Formal parameters of an arrow function are parsed even if the function
    itself is preparsed. It is because we don't know if it is an arrow
    function parameter list or just comma separated expression list.
    When we parse:
     (a, b = (function c() { return a; })())
    call to function c may be just part of an assignment in an expression
    list, but if it's followed by:
     => { return b; }
    It is an arrow function and the call to c is a default parameter.
    Before we see the arrow we might have already created a parse task
    to parse function c.
    
    BUG=v8:6093
    
    Change-Id: I59a59acfdbbfd808dab1518060748be2addcd54a
    Reviewed-on: https://chromium-review.googlesource.com/493347
    Commit-Queue: Wiktor Garbacz <wiktorg@google.com>
    Reviewed-by: 's avatarMarja Hölttä <marja@chromium.org>
    Reviewed-by: 's avatarDaniel Vogelheim <vogelheim@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#45132}
    9a572e1d
parser.cc 201 KB