1. 27 Mar, 2017 1 commit
  2. 24 Mar, 2017 1 commit
  3. 28 Feb, 2017 1 commit
  4. 17 Jan, 2017 1 commit
    • leszeks's avatar
      [ast] Remove internalization before AST rewriting · bb71555e
      leszeks authored
      This internalization was not necessary, since the rewriting does not use
      the .result name string.
      
      The subsequent internalization is still needed, so to simplify later
      refactoring, this CL also adds "releasing" of the disallow scopes and
      uses them here immediately before the second internalize. Notably, this
      means that the rewriting is now also in the disallow scopes.
      
      Driveby: Remove isolate from the rewriter's processor constructor.
      
      BUG=v8:5832
      
      Review-Url: https://codereview.chromium.org/2635913002
      Cr-Commit-Position: refs/heads/master@{#42403}
      bb71555e
  5. 16 Jan, 2017 1 commit
  6. 09 Jan, 2017 2 commits
  7. 05 Dec, 2016 1 commit
  8. 24 Oct, 2016 1 commit
    • verwaest's avatar
      Simplify and fix the rewriter · caba112d
      verwaest authored
      Now we
      - always set .result to undefined before a visited loop and switch since we can't know whether they will set a value,
      - only visit finally if it can break/continue; and only store/restore .result in that case
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/2427253003
      Cr-Commit-Position: refs/heads/master@{#40542}
      caba112d
  9. 21 Oct, 2016 1 commit
  10. 20 Sep, 2016 1 commit
  11. 05 Sep, 2016 2 commits
  12. 22 Aug, 2016 1 commit
  13. 05 Aug, 2016 3 commits
  14. 01 Aug, 2016 1 commit
    • verwaest's avatar
      Always finalize blocks after parsing, also for do-expressions · f02018ce
      verwaest authored
      Rather than finalizing after rewriting do-expressions, we rewrite in the
      outer scope if the block scope was finalized. Rewriting do expressions
      cannot introduce any new nodes that requires the block to stay around,
      so finalizing before and after is equivalent. (Only a temporary is
      introduced which always ends up in a ClosureScope)
      
      BUG=v8:5209
      R=rossberg@chromium.org, caitpotter88@gmail.com, adamk@chromium.org
      
      Review-Url: https://codereview.chromium.org/2167713004
      Cr-Commit-Position: refs/heads/master@{#38193}
      f02018ce
  15. 15 Jul, 2016 1 commit
    • verwaest's avatar
      Templatize AstVisitor with its subclass · ebf166df
      verwaest authored
      This replaces the vtable on AstNode with a NodeType tag. The visitors replace double dispatch with a single switch over the NodeType.
      
      For now, visitors with subclasses still have virtual methods themselves. We should probably specialize them later as well.
      
      The uint8_t NodeType allows us to better pack memory, saving 8-16 bytes on many AST nodes (with additional packing that I'll do in a follow-up CL)
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/2142233003
      Cr-Commit-Position: refs/heads/master@{#37788}
      ebf166df
  16. 30 Jun, 2016 1 commit
  17. 01 Mar, 2016 1 commit
    • yangguo's avatar
      [debugger] fix break locations for assignments and return. · d9fe836d
      yangguo authored
      We used to emit debug break location on block entry. This cannot be
      ported to the interpreted as we do not emit bytecode for block entry.
      This made no sense to begin with though, but accidentally added
      break locations for var declarations.
      
      With this change, the debugger no longer breaks at var declarations
      without initialization. This is in accordance with the fact that the
      interpreter does not emit bytecode for uninitialized var declarations.
      
      Also fix the bytecode to match full-codegen's behavior wrt return
      positions:
      - there is a break location before the return statement, with the source
        position of the return statement.
      - right before the actual return, there is another break location. The
        source position points to the end of the function.
      
      R=rmcilroy@chromium.org, vogelheim@chromium.org
      TBR=rossberg@chromium.org
      BUG=v8:4690
      LOG=N
      
      Review URL: https://codereview.chromium.org/1744123003
      
      Cr-Commit-Position: refs/heads/master@{#34388}
      d9fe836d
  18. 18 Feb, 2016 1 commit
    • rossberg's avatar
      [es6] Implement for-of iterator finalization · cb1bf4af
      rossberg authored
      Implements iterator finalisation by desugaring for-of loops with an additional try-finally wrapper. See comment in parser.cc for details.
      
      Also improved some AST printing facilities while there.
      
      @Ross, I had to disable the bytecode generation test for for-of, because it got completely out of hand after this change (the new bytecode has 150+ lines). See the TODO that I assigned to you.
      
      Patch set 1 is WIP patch by Georg (http://crrev.com/1695583003), patch set 2 relative changes.
      
      @Georg, FYI, I changed the following:
      
      - Moved try-finally out of the loop body, for performance, and in order to be able to handle `continue` correctly.
      - Fixed scope management in ParseForStatement, which was the cause for the variable allocation failure.
      - Fixed pre-existing zone initialisation bug in rewriter, which caused the crashes.
      - Enabled all tests, adjusted a few others, added a couple more.
      
      BUG=v8:2214
      LOG=Y
      
      Review URL: https://codereview.chromium.org/1695393003
      
      Cr-Commit-Position: refs/heads/master@{#34111}
      cb1bf4af
  19. 04 Feb, 2016 1 commit
    • neis's avatar
      [generators] Desugar yield*. · 5269944a
      neis authored
      This CL deals with yield* by desugaring it in the parser.  Hence the
      full-codegen implementation of it becomes obsolete and can be removed in a
      future CL.
      
      The only change in semantics should be that the results of the iterator's next
      and throw methods are checked to be objects, which didn't happen before but is
      required by the spec.
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1643903003
      
      Cr-Commit-Position: refs/heads/master@{#33735}
      5269944a
  20. 03 Feb, 2016 1 commit
  21. 26 Nov, 2015 1 commit
  22. 04 Nov, 2015 1 commit
  23. 21 Oct, 2015 1 commit
  24. 15 Oct, 2015 1 commit
  25. 08 Oct, 2015 1 commit
  26. 01 Oct, 2015 2 commits
  27. 30 Sep, 2015 1 commit
  28. 29 Sep, 2015 1 commit
  29. 28 Sep, 2015 1 commit
    • neis's avatar
      Clean up rewriter. · b466dc14
      neis authored
      The main changes are:
      - Fix treatment of loops, which was incorrect and sometimes resulted in
        the wrong completion value.
      - Get rid of unnecessary variables.
      
      This is in preparation of implementing ES6 completion semantics.
      
      R=rossberg
      BUG=
      
      Review URL: https://codereview.chromium.org/1362333002
      
      Cr-Commit-Position: refs/heads/master@{#30981}
      b466dc14
  30. 21 Sep, 2015 1 commit
    • littledan's avatar
      Implement sloppy-mode block-defined functions (Annex B 3.3) · e5ff10d7
      littledan authored
      ES2015 specifies very particular semantics for functions defined in blocks.
      In strict mode, it is simply a lexical binding scoped to that block. In sloppy
      mode, in addition to that lexical binding, there is a var-style binding in
      the outer scope, which is overwritten with the local binding when the function
      declaration is evaluated, *as long as* introducing ths var binding would not
      create a var/let conflict in the outer scope.
      
      This patch implements the semantics by introducing a DelegateStatement, which
      is initially filled in with the EmptyStatement and overwritten with the
      assignment when the scope is closed out and it can be checked that there is
      no conflict.
      
      This patch is tested with a new mjsunit test, and I tried staging it and running
      test262, finding that the tests that we have disabled due to lack of Annex B
      support now pass.
      
      R=adamk,rossberg
      LOG=Y
      BUG=v8:4285
      
      Review URL: https://codereview.chromium.org/1332873003
      
      Cr-Commit-Position: refs/heads/master@{#30842}
      e5ff10d7
  31. 19 Aug, 2015 1 commit
  32. 14 Aug, 2015 1 commit
  33. 18 Jun, 2015 1 commit
    • conradw's avatar
      [es6] Fix completion values of for loops with lexical variables · 1bb051b8
      conradw authored
      Currently, the desugaring of for loops of the form for
      (let/const ...; bla; bla) causes them to always have a
      completion value of 1, regardless of whether the loop body
      is executed or not. This CL fixes this, realigning
      initializer blocks as a more general purpose way to avoid
      the completion value rewriter (since that's all they really
      do anyway).
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1177053006
      
      Cr-Commit-Position: refs/heads/master@{#29108}
      1bb051b8
  34. 08 Jun, 2015 2 commits