1. 13 May, 2019 1 commit
  2. 10 May, 2019 1 commit
    • Ross McIlroy's avatar
      Revert "[class] implement private method declarations" · bf07d790
      Ross McIlroy authored
      This reverts commit b9191bd3.
      
      Reason for revert: Clusterfuzz bugs
      BUG=chromium:961507,chromium:961508
      
      Original change's description:
      > [class] implement private method declarations
      >
      > This patch implements the declarations of private methods, the access
      > of private methods would be left to a future patch.
      > When a private methods declaration is encountered, we now:
      >
      > - Create a brand symbol during class evaluation and store it in the
      >   context.
      > - Create the closures for the private methods
      > - Load the brand from the context and store it in the instance in the
      >   constructor.
      >
      > Design: https://docs.google.com/document/d/1T-Ql6HOIH2U_8YjWkwK2rTfywwb7b3Qe8d3jkz72KwA/edit#
      >
      > Bug: v8:8330
      > Change-Id: I2d695cbdc8a7367ddc7620d627b318f779d36150
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1568708
      > Commit-Queue: Joyee Cheung <joyee@igalia.com>
      > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
      > Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#61387}
      
      TBR=rmcilroy@chromium.org,gsathya@chromium.org,verwaest@chromium.org,joyee@igalia.com
      
      Change-Id: I429bbe8af9f94598de132814aa2c3ab9fa69b986
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:8330
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1605730
      Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#61406}
      bf07d790
  3. 09 May, 2019 1 commit
  4. 15 Apr, 2019 2 commits
  5. 09 Apr, 2019 1 commit
  6. 03 Apr, 2019 1 commit
  7. 26 Feb, 2019 1 commit
  8. 20 Feb, 2019 1 commit
  9. 06 Feb, 2019 2 commits
    • Toon Verwaest's avatar
      [parser] Customize preparsed scope variable resolution · c1119e21
      Toon Verwaest authored
      Otherwise preparsed variables will cause unnecessary dynamic variable
      allocation, which is especially bad when we're preparsing top-level functions
      with references to other global variables.
      
      Change-Id: I2fa17dae8c1cc5264a26ddc8b8868de1d791b0ac
      Reviewed-on: https://chromium-review.googlesource.com/c/1456040
      Commit-Queue: Toon Verwaest <verwaest@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59420}
      c1119e21
    • Toon Verwaest's avatar
      [parser] Handle 'this' with a special ThisExpression rather than VariableProxy · 3f2b5017
      Toon Verwaest authored
      "this" is a very common expression. By using a single ThisExpression object
      we can both avoid allocating many unnecessary VariableProxies and specialize
      the resolution of this since we know where it's declared up-front. This also
      avoids having to special-case "this" reference handling in the paths that would
      behave differently for "this" than for regular references; e.g., with-scopes.
      
      The tricky pieces are due to DebugEvaluate and this/super() used as default
      parameters of arrow functions. In the former case we replace the WITH_SCOPE
      with FUNCTION_SCOPE so that we make sure that "this" is intercepted, and still
      rely on regular dynamic variable lookup. Arrow functions are dealt with by
      marking "this" use in ArrowHeadParsingScopes. If the parenthesized expression
      ends up being an arrow function, we force context allocate on the outer scope
      (and mark "has_this_reference" on the FUNCTION_SCOPE so DebugEvaluate in the
      arrow function can expose "this").
      
      The CL also removes the now unused ThisFunction AST node.
      
      Change-Id: I0ca38ab92ff58c2f731e07db2fbe91df901681ef
      Reviewed-on: https://chromium-review.googlesource.com/c/1448313Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Commit-Queue: Toon Verwaest <verwaest@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59393}
      3f2b5017
  10. 31 Jan, 2019 1 commit
  11. 28 Jan, 2019 2 commits
  12. 25 Jan, 2019 2 commits
  13. 23 Jan, 2019 1 commit
  14. 22 Jan, 2019 1 commit
  15. 21 Jan, 2019 2 commits
  16. 18 Jan, 2019 1 commit
  17. 16 Jan, 2019 2 commits
  18. 15 Jan, 2019 1 commit
    • Toon Verwaest's avatar
      [parser] Give hoisting sloppy block functions a valid position · 8436715f
      Toon Verwaest authored
      A sloppy function in a block scope implicitily creates a var in the outer
      declaration scope if it's not blocked. The assignment created reads the local
      lexical declaration for the function. The reference introduced automatically
      takes part in NeedsHoleCheck, requiring the reference to have a valid position.
      Since the assignment will happen after the local declaration, we give the
      end_position() of the closure as the position of the reference, so hole checks
      can be omitted.
      
      Bug: chromium:917755
      Change-Id: Iee0e042b2463f97f05075f9eec09dac8c6eaf539
      Reviewed-on: https://chromium-review.googlesource.com/c/1408991Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Commit-Queue: Toon Verwaest <verwaest@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58823}
      8436715f
  19. 10 Jan, 2019 1 commit
  20. 09 Jan, 2019 2 commits
  21. 08 Jan, 2019 1 commit
    • Toon Verwaest's avatar
      [parser] Disambiguate variables through expression-scope · f9529f6b
      Toon Verwaest authored
      Previously we'd always push variable proxies into the unresolved list of the
      current scope, and possibly delete them from the list later in case they end up
      being declarations. If variables become assigned, there were two ways to mark
      them as such: The preparser would marked the variables tracked on the
      PreParserExpression, and the parser would traverse the LHS AST to find and mark
      all variables.
      
      After this CL, if the scope already knows it's tracking declarations, the
      variables are never added to the unresolved list in the first place. If the
      scope is ambigous, it tracks the variable proxies on the side and only adds
      them to the unresolved list if they end up being references rather than
      declarations. The same list is now used to bulk mark all LHS variables as
      assigned; uniformely for both the parser and the preparser.
      
      In a next step we'll also use the scope to create declarations. That way we can
      stop tracking variables_ on PreParserExpression altogether.
      
      Change-Id: I6ada37006cc2e066731f29cd4ea314550fc7959f
      Reviewed-on: https://chromium-review.googlesource.com/c/1397669
      Commit-Queue: Toon Verwaest <verwaest@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58629}
      f9529f6b
  22. 07 Jan, 2019 2 commits
  23. 21 Dec, 2018 2 commits
  24. 20 Dec, 2018 1 commit
  25. 19 Dec, 2018 2 commits
  26. 17 Dec, 2018 1 commit
  27. 12 Dec, 2018 1 commit
    • Mythri's avatar
      Don't use feedback vector to infer IC kind and language mode · a36f2593
      Mythri authored
      Currently, the runtime IC functions deduce the IC kind and the language
      mode from the feedback slot kind. To support feedback free execution
      (for V8 lite mode and lazy allocation of feedback vectors) we need to
      infer the IC kind even when feedback vectors are not present.
      
      To be able to infer the language mode without feedback vectors, this cl
      forces context allocation in cases where we raise the language mode in
      the middle of a function. The language mode is the stricter of the
      language mode on the SFI and the language mode of the current context.
      
      This cl updates the bytecode handlers to check for valid feedback vectors
      and to call into runtime if the feedback vector is not allocated. It also
      adds new runtime functions to be able to infer the IC kind when there is no
      feedback vector. Most of the builtins and handlers remain unchanged because
      they are only used when feedback vector is present.
      
      Bug: v8:8394
      Change-Id: I1f77740c0d68ddaa0de076597f5f6bcb2e966d70
      Reviewed-on: https://chromium-review.googlesource.com/c/1358516
      Commit-Queue: Mythri Alle <mythria@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58191}
      a36f2593
  28. 04 Dec, 2018 1 commit
  29. 29 Nov, 2018 1 commit
  30. 27 Nov, 2018 1 commit