1. 27 Nov, 2019 1 commit
  2. 12 Nov, 2019 1 commit
  3. 28 Jun, 2019 1 commit
  4. 18 Dec, 2018 1 commit
    • Toon Verwaest's avatar
      [parser] Replacing ExpressionClassifier with ExpressionScope that knows what it's tracking · d1b4e31b
      Toon Verwaest authored
      Since it's explicit what we're tracking, we can immediately throw errors in
      certain cases, and ignore irrelevant errors. We don't need to use the
      classifier itself to track "let let", since we know whether we're parsing a
      "let". Errors that were previously (almost) always accumulated are now
      immediately pushed to the scopes that care (parameter initialization errors).
      
      This CL drops avoiding allocation of classified errors, at least for now, but
      that doesn't affect performance anymore since we don't aggressively blacklist
      anymore. Classified errors are even less likely with the more precise approach.
      
      ParseAssignmentExpression doesn't introduce its own scope immediately, but
      reuses the outer scope.
      
      Rather than using full ExpressionClassifiers + Accumulate to separate
      expressions/patterns from each other while keeping track of the overall error
      state, this now uses an explicit AccumulationScope.
      
      When we parse (async) arrow functions we introduce new scopes
      that track that they may be (async) arrow functions.
      
      We track StrictModeFormal parameters in 2 different ways if it isn't
      immediately certain that it is a strict-mode formal error: Either directly on
      the (Pre)ParserFormalParameters, or on the NextArrowFunctionInfo in the case
      we're not yet certain that we'll have an arrow function. In the latter case we
      don't have a FormalParameter object yet, and we'll copy it over once we know
      we're parsing an arrow function. The latter works because it's not allowed to
      change strictness of a function with non-simple parameters.
      
      Design doc:
      https://docs.google.com/document/d/1FAvEp9EUK-G8kHfDIEo_385Hs2SUBCYbJ5H-NnLvq8M/
      
      Change-Id: If4ecd717c9780095c7ddc859c8945b3d7d268a9d
      Reviewed-on: https://chromium-review.googlesource.com/c/1367809
      Commit-Queue: Toon Verwaest <verwaest@chromium.org>
      Reviewed-by: 's avatarAdam Klein <adamk@chromium.org>
      Reviewed-by: 's avatarMarja Hölttä <marja@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58307}
      d1b4e31b
  5. 17 Oct, 2018 1 commit
  6. 08 Mar, 2018 1 commit
  7. 10 Jan, 2018 1 commit
  8. 09 Jan, 2018 1 commit