1. 19 Jun, 2019 1 commit
    • Leszek Swirski's avatar
      [parser] Fix reindexing of functions inside classes · 1e37ca26
      Leszek Swirski authored
      A class's fields can appear twice in the class AST, via the properties
      array and the synthetised initializer method. This means that the
      reindexer can end up visiting the same function literal twice, since the
      T in AST is no longer a T but rather a DAG.
      
      Now, we special case the class visitor in the reindexer to avoid these
      double visits where appropriate. We know what kinds of fields can be
      double visisted, so we don't need a visited set, but we now also have
      one for debug builds to verify that each function is visited exactly
      once.
      
      Bug: chromium:974627
      Change-Id: Ib531becc6e3f3c73f420b5fb49790fe4a2022d65
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1667003Reviewed-by: 's avatarSathya Gunasekaran <gsathya@chromium.org>
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#62282}
      1e37ca26
  2. 23 May, 2019 1 commit
  3. 14 Sep, 2018 1 commit
  4. 09 Jan, 2017 1 commit
  5. 28 Nov, 2016 1 commit
    • 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