1. 25 Aug, 2016 1 commit
  2. 24 Aug, 2016 1 commit
    • littledan's avatar
      Change which ExceptionEvents are triggered by Promises · 013e49f7
      littledan authored
      To make async/await catch prediction work well, this patch regularizes
      the exception events sent to DevTools from various places in the Promise
      lifecycle. The core is that there should be an exception event when the
      rejection first starts, rather than when it is propagated.
      
      - Several cases within Promise code which propagate errors are
        modified to not trigger a new ExceptionEvent in that case, such
        as .then on a rejected Promise and returning a rejected Promise
        from .then, as well as Promise.race and Promise.all.
      - Make Promise.reject() create an ExceptionEvent, subject to catch
        prediction based on the Promise stack. This is important
        so that, e.g., if "await Promise.reject()" will trigger a new
        throw (rather than a silent rethrow of something that never
        triggered an event in the first place).
      
      BUG=v8:5167
      
      Review-Url: https://codereview.chromium.org/2244003003
      Cr-Commit-Position: refs/heads/master@{#38847}
      013e49f7
  3. 18 Aug, 2016 1 commit
  4. 17 Aug, 2016 2 commits
    • bakkot's avatar
      Reland of Amend DataView, ArrayBuffer, and TypedArray methods to use ToIndex.... · a3c13435
      bakkot authored
      Reland of Amend DataView, ArrayBuffer, and TypedArray methods to use ToIndex. (patchset #2 id:170001 of https://codereview.chromium.org/2113593002/ )
      
      Reason for revert:
      WebGL tests have been updated and rolled (at https://codereview.chromium.org/2227023002), so this should no longer fail outdated tests.
      
      Original issue's description:
      > Revert of Amend DataView, ArrayBuffer, and TypedArray methods to use ToIndex. (patchset #8 id:140001 of https://codereview.chromium.org/2090353003/ )
      >
      > Reason for revert:
      > Speculative revert to unblock roll: https://codereview.chromium.org/2107223003/
      >
      > Original issue's description:
      > > Amend DataView, ArrayBuffer, and TypedArray methods to use ToIndex.
      > >
      > > The spec was modified to relax some requirements which implementors had not been
      > > enforcing. Part of this process involved introducing a new abstract operation
      > > ToIndex, which had partial overlap with our existing semantics as well as some
      > > differences (most notably treating undefined as 0). Test262 tests were introduced to
      > > check for the new semantics, some of which we were failing. This patch amends the
      > > parts of our implementation corresponding to specification algorithms which use
      > > ToIndex to follow its semantics precisely.
      > >
      > > BUG=v8:4784,v8:5120
      > >
      > > Committed: https://crrev.com/09720349ea058d178521ec58d0a5676443a5a132
      > > Cr-Commit-Position: refs/heads/master@{#37406}
      >
      > TBR=littledan@chromium.org,adamk@chromium.org,bakkot@google.com
      > # Skipping CQ checks because original CL landed less than 1 days ago.
      > NOPRESUBMIT=true
      > NOTREECHECKS=true
      > NOTRY=true
      > BUG=v8:4784,v8:5120
      >
      > Committed: https://crrev.com/b1f7f1f4e41a723d5f997738a07e35a031713b8f
      > Cr-Commit-Position: refs/heads/master@{#37417}
      
      TBR=littledan@chromium.org,adamk@chromium.org,hablich@chromium.org
      # Not skipping CQ checks because original CL landed more than 1 days ago.
      BUG=v8:4784,v8:5120
      
      Review-Url: https://codereview.chromium.org/2247073004
      Cr-Commit-Position: refs/heads/master@{#38689}
      a3c13435
    • neis's avatar
      [interpreter] Don't assume generator functions do an initial yield. · 7fe4d930
      neis authored
      Async functions are implemented via special generator functions; special in the
      sense that they generally do not immediately yield.  However, our generators
      implementation still assumed that every generator function initially yields
      (concretely: before doing the state dispatch in a loop header).  This CL fixes
      that.
      
      R=littledan@chromium.org, rmcilroy@chromium.org
      BUG=chromium:638019
      
      Review-Url: https://codereview.chromium.org/2253033002
      Cr-Commit-Position: refs/heads/master@{#38684}
      7fe4d930
  5. 12 Aug, 2016 1 commit
  6. 10 Aug, 2016 1 commit
  7. 08 Aug, 2016 1 commit
  8. 06 Aug, 2016 1 commit
    • littledan's avatar
      [promise] Async/await edge case spec compliance fix · 7826bfa7
      littledan authored
      - Don't read .constructor when returning a Promise from an async function.
        Instead, call out to the internals of Promise.resolve directly.
        This is done by adding back in an "optimization" from an earlier form of
        the async/await code written by Caitlin Potter.
      - Async functions always return a new Promise with a distinct identity,
        even if they simply return another Promise.
      
      R=caitp@igalia.com
      BUG=v8:4483
      
      Review-Url: https://codereview.chromium.org/2219623002
      Cr-Commit-Position: refs/heads/master@{#38404}
      7826bfa7
  9. 04 Aug, 2016 1 commit
    • caitp's avatar
      [promise] separate PerformPromiseThen from PromiseThen · 0272aa50
      caitp authored
      The `PerformPromiseThen` spec-internal operation is used by the async functions
      proposal, in order to ensure that AwaitExpressions are not observable via
      usual mechanisms/hooks, such as Symbol.species.
      
      BUG=v8:5253
      R=littledan@chromium.org, adamk@chromium.org, gsathya@chromium.org, yangguo@chromium.org
      
      Review-Url: https://codereview.chromium.org/2209433003
      Cr-Commit-Position: refs/heads/master@{#38353}
      0272aa50
  10. 02 Aug, 2016 1 commit
  11. 25 Jul, 2016 1 commit
  12. 22 Jul, 2016 1 commit
    • jwolfe's avatar
      Adjust whitespace to make tests oblivious to --harmony-function-tostring · 3cfd80d6
      jwolfe authored
      See discussion in https://codereview.chromium.org/2156303002/#msg8
      
      With the new --harmony-function-tostring behavior, these tests would
      fail without this change. This change makes the tests pass regardless
      of whether or not --harmony-function-tostring is used.
      
      All of these changes are simply inserting a space after the "function"
      keyword to match the current function toString behavior. When
      --harmony-function-tostring is enabled, the toString behavior matches
      the spacing used in the function declaration. With the declaration
      matching the current formatting, the toString behavior becomes
      unaffected by --harmony-function-tostring.
      
      BUG=v8:4958
      LOG=n
      
      Review-Url: https://codereview.chromium.org/2161413002
      Cr-Commit-Position: refs/heads/master@{#37959}
      3cfd80d6
  13. 14 Jul, 2016 1 commit
    • adamk's avatar
      Slight cleanup of TryCatch parsing/variable declaration · 458bd3b9
      adamk authored
      Instead of unconditionally parsing the catch parameter as an expression
      and then recovering if it turns out to be a simple variable proxy
      (the overwhelmingly common case), this patch peeks one token ahead
      before attempting to parse. This avoids doing the usual RemoveUnresolved
      gymnastics in ParseTryStatement, and as a side-effect slightly improves
      function name inference for an async arrow function test case.
      
      Review-Url: https://codereview.chromium.org/2151433005
      Cr-Commit-Position: refs/heads/master@{#37780}
      458bd3b9
  14. 13 Jul, 2016 1 commit
  15. 12 Jul, 2016 1 commit
  16. 11 Jul, 2016 2 commits
  17. 07 Jul, 2016 1 commit
  18. 04 Jul, 2016 1 commit
  19. 01 Jul, 2016 1 commit
  20. 30 Jun, 2016 1 commit
    • hablich's avatar
      Revert of Amend DataView, ArrayBuffer, and TypedArray methods to use ToIndex.... · b1f7f1f4
      hablich authored
      Revert of Amend DataView, ArrayBuffer, and TypedArray methods to use ToIndex. (patchset #8 id:140001 of https://codereview.chromium.org/2090353003/ )
      
      Reason for revert:
      Speculative revert to unblock roll: https://codereview.chromium.org/2107223003/
      
      Original issue's description:
      > Amend DataView, ArrayBuffer, and TypedArray methods to use ToIndex.
      >
      > The spec was modified to relax some requirements which implementors had not been
      > enforcing. Part of this process involved introducing a new abstract operation
      > ToIndex, which had partial overlap with our existing semantics as well as some
      > differences (most notably treating undefined as 0). Test262 tests were introduced to
      > check for the new semantics, some of which we were failing. This patch amends the
      > parts of our implementation corresponding to specification algorithms which use
      > ToIndex to follow its semantics precisely.
      >
      > BUG=v8:4784,v8:5120
      >
      > Committed: https://crrev.com/09720349ea058d178521ec58d0a5676443a5a132
      > Cr-Commit-Position: refs/heads/master@{#37406}
      
      TBR=littledan@chromium.org,adamk@chromium.org,bakkot@google.com
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=v8:4784,v8:5120
      
      Review-Url: https://codereview.chromium.org/2113593002
      Cr-Commit-Position: refs/heads/master@{#37417}
      b1f7f1f4
  21. 29 Jun, 2016 2 commits
    • bakkot's avatar
      Amend DataView, ArrayBuffer, and TypedArray methods to use ToIndex. · 09720349
      bakkot authored
      The spec was modified to relax some requirements which implementors had not been
      enforcing. Part of this process involved introducing a new abstract operation
      ToIndex, which had partial overlap with our existing semantics as well as some
      differences (most notably treating undefined as 0). Test262 tests were introduced to
      check for the new semantics, some of which we were failing. This patch amends the
      parts of our implementation corresponding to specification algorithms which use
      ToIndex to follow its semantics precisely.
      
      BUG=v8:4784,v8:5120
      
      Review-Url: https://codereview.chromium.org/2090353003
      Cr-Commit-Position: refs/heads/master@{#37406}
      09720349
    • jwolfe's avatar
      Allow trailing commas in function parameter lists · 1ac09655
      jwolfe authored
      Add a flag harmony_trailing_commas_in_parameters that allows trailing
      commas in function parameter declaration lists and function call
      parameter lists. Trailing commas are allowed in parenthetical lists like
      `(a, b, c,)` only if the next token is `=>`, thereby making it an arrow
      function declaration. Only 1 trailing comma is allowed, not `(a,,)`. A
      trailing comma must follow a non-rest parameter, so `(,)` and `(...a,)`
      are still SyntaxErrors. However, a trailing comma is allowed after a
      spread parameter, e.g. `a(...b,);`.
      
      Add parser tests for all of the above.
      
      BUG=v8:5051
      LOG=y
      
      Review-Url: https://codereview.chromium.org/2094463002
      Cr-Commit-Position: refs/heads/master@{#37355}
      1ac09655
  22. 28 Jun, 2016 2 commits
    • neis's avatar
      Fix behavior of throw on yield*. · 2f0cb3af
      neis authored
      When calling the throw method on a generator suspended inside a yield*, yield*
      in turn tries to call throw on its iterable.  If the iterable does not provide a
      throw method, yield* must try to call the return method instead and then throw a
      TypeError.  Due to a bug in our desugaring, we never threw the TypeError.
      
      R=adamk@chromium.org
      BUG=v8:5132
      
      Review-Url: https://codereview.chromium.org/2094253002
      Cr-Commit-Position: refs/heads/master@{#37314}
      2f0cb3af
    • neis's avatar
      Fix behavior of return on yield*. · 6dffb078
      neis authored
      When calling the return method on a generator suspended inside a yield*, yield*
      in turn calls return on its iterable.  If this results in a "done" iterator,
      yield* must return immediately, thus terminating the generator.  For some
      reason, we didn't terminate the generator but continued right after the yield*.
      
      R=adamk@chromium.org
      BUG=v8:5131
      
      Review-Url: https://codereview.chromium.org/2100093002
      Cr-Commit-Position: refs/heads/master@{#37310}
      6dffb078
  23. 25 Jun, 2016 1 commit
  24. 24 Jun, 2016 1 commit
  25. 22 Jun, 2016 1 commit
  26. 21 Jun, 2016 2 commits
  27. 15 Jun, 2016 2 commits
  28. 14 Jun, 2016 3 commits
  29. 13 Jun, 2016 1 commit
  30. 10 Jun, 2016 1 commit
    • littledan's avatar
      Async/await event listener test · 5d7b9ece
      littledan authored
      This patch adds a test for async/await analogous to a previous Promise test.
      It also fixes a typo in promise.js and makes a previous Promise test more
      correct by ensuring that all assertions run before completion, fixing the
      test expectations for the real result (which seems correct).
      
      BUG=v8:4483
      CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel
      
      Review-Url: https://codereview.chromium.org/2037653002
      Cr-Commit-Position: refs/heads/master@{#36903}
      5d7b9ece
  31. 07 Jun, 2016 1 commit
  32. 03 Jun, 2016 1 commit