1. 17 Jun, 2016 2 commits
  2. 16 Jun, 2016 2 commits
  3. 14 Jun, 2016 1 commit
  4. 13 Jun, 2016 1 commit
    • bmeurer's avatar
      [builtins] Introduce proper Float64Atan and Float64Atan2 operators. · 89d8c57b
      bmeurer authored
      Import base::ieee754::atan() and base::ieee754::atan2() from fdlibm and
      introduce Float64Atan and Float64Atan2 TurboFan operators based on those,
      similar to what we already did for Float64Log and Float64Log1p. Rewrite
      Math.atan() and Math.atan2() as TurboFan builtin and use the operators
      to also inline Math.atan() and Math.atan2() into optimized TurboFan functions.
      
      R=yangguo@chromium.org
      BUG=v8:5086,v8:5095
      
      Review-Url: https://codereview.chromium.org/2065503002
      Cr-Commit-Position: refs/heads/master@{#36916}
      89d8c57b
  5. 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
  6. 08 Jun, 2016 1 commit
    • gsathya's avatar
      Revert "Revert of [builtins] Properly optimize TypedArray/DataView accessors.... · 3c927e07
      gsathya authored
      Revert "Revert of [builtins] Properly optimize TypedArray/DataView accessors. (patchset #3 id:40001 of https://codereview.chromium.org/2042013003/ )"
      
      This reverts commit d3a43e47.
      
      This patch also adds typed_array_fun and typed_array_protoype to the
      native context. These are used in InstallTypedArray to set up the
      prototype chain correctly for each typed array sub class. This removes
      the need to later monkey patch them prototype chain in typedarray.js.
      This mechanism is also used to get hold of the TypedArray in
      typedarray.js, removing the need for a global TypedArray.
      
      This patch updates CallRuntime.golden to account for the two extra
      native runtime calls. This patch also fixes some formatting issues (by
      running git cl format).
      
      BUG=chromium:579905, chromium:593634, v8:4085, v8:5073
      
      Review-Url: https://codereview.chromium.org/2046333002
      Cr-Commit-Position: refs/heads/master@{#36811}
      3c927e07
  7. 07 Jun, 2016 3 commits
    • machenbach's avatar
      Revert of [builtins] Properly optimize TypedArray/DataView accessors.... · d3a43e47
      machenbach authored
      Revert of [builtins] Properly optimize TypedArray/DataView accessors. (patchset #3 id:40001 of https://codereview.chromium.org/2042013003/ )
      
      Reason for revert:
      Blink:
      https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/7296
      
      Original issue's description:
      > [builtins] Properly optimize TypedArray/DataView accessors.
      >
      > The following getters were moved to the TypedArray/DataView prototype
      > chain with ES2015, and hence need different treatment now:
      >
      > - DataView.prototype.buffer
      > - DataView.prototype.byteLength
      > - DataView.prototype.byteOffset
      > - TypedArray.prototype.buffer
      > - TypedArray.prototype.byteLength
      > - TypedArray.prototype.byteOffset
      > - TypedArray.prototype.length
      >
      > Instead of having special magic on the LoadIC in the IC system and the
      > optimizing compilers, as we used to do before (and which we got rid of
      > already), we just treat those as normal accessors and make them
      > recognizable via the BuiltinFunctionId mechanism. This allows us to
      > remove some of the additional magic from the IC subsystem, and just
      > extend the BuiltinFunctionId mechanism in Crankshaft slightly to cover
      > these cases too (TurboFan doesn't yet support accessors, but that will
      > be fixed soonish anyways).
      >
      > This addresses most of the 15-20% regression we saw on the Octane
      > GameBoy emulator benchmark.
      >
      > BUG=chromium:579905,chromium:593634,v8:4085,v8:5073
      > R=yangguo@chromium.org
      >
      > Committed: https://crrev.com/1ef737026565ea2becc84f30cfd432e581d50c6b
      > Cr-Commit-Position: refs/heads/master@{#36782}
      
      TBR=yangguo@chromium.org,bmeurer@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=chromium:579905,chromium:593634,v8:4085,v8:5073
      
      Review-Url: https://codereview.chromium.org/2039093005
      Cr-Commit-Position: refs/heads/master@{#36783}
      d3a43e47
    • bmeurer's avatar
      [builtins] Properly optimize TypedArray/DataView accessors. · 1ef73702
      bmeurer authored
      The following getters were moved to the TypedArray/DataView prototype
      chain with ES2015, and hence need different treatment now:
      
      - DataView.prototype.buffer
      - DataView.prototype.byteLength
      - DataView.prototype.byteOffset
      - TypedArray.prototype.buffer
      - TypedArray.prototype.byteLength
      - TypedArray.prototype.byteOffset
      - TypedArray.prototype.length
      
      Instead of having special magic on the LoadIC in the IC system and the
      optimizing compilers, as we used to do before (and which we got rid of
      already), we just treat those as normal accessors and make them
      recognizable via the BuiltinFunctionId mechanism. This allows us to
      remove some of the additional magic from the IC subsystem, and just
      extend the BuiltinFunctionId mechanism in Crankshaft slightly to cover
      these cases too (TurboFan doesn't yet support accessors, but that will
      be fixed soonish anyways).
      
      This addresses most of the 15-20% regression we saw on the Octane
      GameBoy emulator benchmark.
      
      BUG=chromium:579905,chromium:593634,v8:4085,v8:5073
      R=yangguo@chromium.org
      
      Review-Url: https://codereview.chromium.org/2042013003
      Cr-Commit-Position: refs/heads/master@{#36782}
      1ef73702
    • yangguo's avatar
      Fix observable array access when formatting stack trace. · 85b8c2dc
      yangguo authored
      This is a fix intended to be merged. Ideally messages.js should be rewritten.
      
      R=bmeurer@chromium.org
      BUG=chromium:617527
      
      Review-Url: https://codereview.chromium.org/2044823002
      Cr-Commit-Position: refs/heads/master@{#36775}
      85b8c2dc
  8. 06 Jun, 2016 2 commits
    • gsathya's avatar
      Revert of Promises: Make PromiseSet operation monomorphic (patchset #1 id:1 of... · 9b606523
      gsathya authored
      Revert of Promises: Make PromiseSet operation monomorphic (patchset #1 id:1 of https://codereview.chromium.org/2025073002/ )
      
      Reason for revert:
      As a side effect of calling PromiseSet from
      FulfillPromise, clears the deferred symbol and the
      resolve/reject callback symbols. Although this
      isn't strictly necessary, not doing this seems to
      result in a leak as seen in --
      
      https://bugs.chromium.org/p/chromium/issues/detail?id=617137#c10
      
      Original issue's description:
      > Promises: Make PromiseSet operation monomorphic
      >
      > The PromiseSet operation is called with two types of promises
      > 1) A newly created promise object with no properties
      > 2) Promise object with callbacks and other properties
      >
      > PromiseSet is called with the first type of promise (with no
      > properties) from multiple call sites. PromiseSet is called with the
      > second type of promise object only from FulfillPromise. Furthermore,
      > this call only sets the value and status of the promise, the rest of
      > the values are reset to UNDEFINED (which isn't necessary).
      >
      > This patch inlines the calls to set the value and status of the
      > promise in FulfillPromise, instead of calling out to PromiseSet.
      >
      > This patch also reduces the number of symbol lookups, as we only set
      > the value and status of the promise, and don't change the callback or
      > deferred symbols.
      >
      > This patch results in a performance improvement of 2.8% over 5 runs in
      > the bluebird benchmark.
      >
      > BUG=v8:5046
      >
      > Committed: https://crrev.com/df4f8a2b9ee9e474e674301718d19b63650a0ba5
      > Cr-Commit-Position: refs/heads/master@{#36688}
      
      TBR=littledan@chromium.org,adamk@chromium.org
      # Not skipping CQ checks because original CL landed more than 1 days ago.
      BUG=v8:5046
      
      Review-Url: https://codereview.chromium.org/2047553002
      Cr-Commit-Position: refs/heads/master@{#36766}
      9b606523
    • gsathya's avatar
      Promises: Short circuit promise resolution procedure · 41c875a6
      gsathya authored
      When |ResolvePromise| is resolved with a promise that is
      already fulfilled or resolved, we can short circuit the
      promise resolution procedure by directly looking up the
      result from the promise. We save creating two closures, enqueuing in
      the promise queue, and running through PromiseThen.
      
      This patch uses IsPromise to check if the |resolution| object is a native
      promise and also checks if |resolution.then| hasn't been monkey
      patched.
      
      This patch adds some redundant code from PromiseThen like setting
      the promiseHasHandlerSymbol and calling PromiseRevokeReject call,
      which would've been taken care of by PromiseThen in the old code path.
      
      This patch results in a 13.8% improvement(over 5 runs) in the bluebird
      benchmarks.
      
      BUG=v8:5046
      
      Review-Url: https://codereview.chromium.org/2028253004
      Cr-Commit-Position: refs/heads/master@{#36765}
      41c875a6
  9. 03 Jun, 2016 3 commits
  10. 02 Jun, 2016 2 commits
    • gsathya's avatar
      Promises: Make PromiseSet operation monomorphic · df4f8a2b
      gsathya authored
      The PromiseSet operation is called with two types of promises
      1) A newly created promise object with no properties
      2) Promise object with callbacks and other properties
      
      PromiseSet is called with the first type of promise (with no
      properties) from multiple call sites. PromiseSet is called with the
      second type of promise object only from FulfillPromise. Furthermore,
      this call only sets the value and status of the promise, the rest of
      the values are reset to UNDEFINED (which isn't necessary).
      
      This patch inlines the calls to set the value and status of the
      promise in FulfillPromise, instead of calling out to PromiseSet.
      
      This patch also reduces the number of symbol lookups, as we only set
      the value and status of the promise, and don't change the callback or
      deferred symbols.
      
      This patch results in a performance improvement of 2.8% over 5 runs in
      the bluebird benchmark.
      
      BUG=v8:5046
      
      Review-Url: https://codereview.chromium.org/2025073002
      Cr-Commit-Position: refs/heads/master@{#36688}
      df4f8a2b
    • yangguo's avatar
      [regexp] fix subtle bug in RegExpTest. · 7ca611d1
      yangguo authored
      R=bmeurer@chromium.org
      
      Review-Url: https://codereview.chromium.org/2032713003
      Cr-Commit-Position: refs/heads/master@{#36670}
      7ca611d1
  11. 01 Jun, 2016 2 commits
  12. 31 May, 2016 3 commits
  13. 30 May, 2016 5 commits
  14. 27 May, 2016 4 commits
  15. 26 May, 2016 2 commits
    • gsathya's avatar
      Promises: Lazily create arrays to store resolve, reject callbacks · 1d4fe002
      gsathya authored
      For the common use case of having a single resolve or reject callback,
      the callbacks are stored directly. Only when an additional callback is
      registered, we create an array to store these callbacks.
      
      There are 3 possible states for the resolve, reject symbols when we add
      a new callback --
      1) UNDEFINED -- This is the zero state where there is no callback
      registered. When we see this state, we directly attach the callbacks to
      the symbol.
      2) !IS_ARRAY -- There is a single callback directly attached to the
      symbols. We need to create a new array to store additional callbacks.
      3) IS_ARRAY -- There are multiple callbacks already registered,
      therefore we can just push the new callback to the existing array.
      
      Also, this change creates a new symbol for storing the deferred objects.
      Previously the deferred objects were stored in the callback arrays, but
      since we no longer create arrays for the initial case, we need this new
      symbol. The cctest has been updated to account for this new symbol.
      
      This patch results in a 19% improvement(over 5 runs) in the bluebird benchmark.
      
      BUG=v8:5046
      
      Review-Url: https://codereview.chromium.org/2007803002
      Cr-Commit-Position: refs/heads/master@{#36536}
      1d4fe002
    • gsathya's avatar
      This patch updates certain functions and parameters to match the Promise spec. · ffdd76e6
      gsathya authored
      Review-Url: https://codereview.chromium.org/2001283006
      Cr-Commit-Position: refs/heads/master@{#36535}
      ffdd76e6
  16. 25 May, 2016 4 commits
  17. 24 May, 2016 2 commits