1. 11 Sep, 2018 1 commit
  2. 13 Aug, 2018 1 commit
  3. 31 Jul, 2018 1 commit
  4. 17 Jul, 2018 1 commit
  5. 13 Jul, 2018 1 commit
  6. 10 Jul, 2018 1 commit
    • Benedikt Meurer's avatar
      [async-generators] Add fast-path to skip "then" lookup in AsyncGeneratorResolve. · cf080aeb
      Benedikt Meurer authored
      This extends the Promise#then protector to also guard the intrinsic
      %ObjectPrototype%, making it usable for fast-path logic in the
      AsyncGeneratorResolve operation, where we can skip the "then" lookup
      on the iteratorResult in that case. We also add a corresponding fast-
      path to the ResolvePromise builtin itself, which avoids the second
      "then" lookup on the async iterator side.
      
      This reduces execution time of the fibonacci-async-es2017-native test
      from 298.16ms to 280.55ms, which corresponds to an improvement of ~6%
      in this case.
      
      This is a rebased reland of
      
        https://chromium-review.googlesource.com/967203
      
      which landed earlier, but had to be reverted as part of the mega-revert
      that was necessary to fix the async_hooks breakage in Node 10.
      
      Bug: v8:7253
      Change-Id: Id9dd1ddc4a8285d64e92cd2030f3168a12e4b509
      Reviewed-on: https://chromium-review.googlesource.com/1130523
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarMaya Lekova <mslekova@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54352}
      cf080aeb
  7. 04 Jul, 2018 1 commit
  8. 26 Jun, 2018 1 commit
    • Georg Neis's avatar
      Reland "Reland "Introduce MutableHeapNumber class."" · f1c79e02
      Georg Neis authored
      This is a reland of f0bcbc90.
      A few casts were still wrong.
      
      Original change's description:
      > Reland "Introduce MutableHeapNumber class."
      >
      > This is a reland of 40ac6b18, which
      > was incorrect due to a bad merge.
      >
      > Original change's description:
      > > Introduce MutableHeapNumber class.
      > >
      > > V8 knows heap numbers and mutable heap numbers. They have
      > > difference instance types, but in C++ code we've used the
      > > same class for both (HeapNumber). Confusingly, however,
      > > IsHeapNumber would return false for mutable heap numbers,
      > > while HeapNumber::cast would succeed.
      > >
      > > This CL adds a separate class MutableHeapNumber and
      > > eliminates the confusing behavior.
      > >
      [...]
      > TBR=bmeurer@chromium.org
      > TBR=ulan@chromium.org
      >
      > Change-Id: I3af1014c949821dfac0754a3e48c65ce1bad1ad1
      > Reviewed-on: https://chromium-review.googlesource.com/1114539
      > Reviewed-by: Georg Neis <neis@chromium.org>
      > Commit-Queue: Georg Neis <neis@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#54022}
      
      Change-Id: I19a33da4b6abcd445b528a84d4f56ba1964d337b
      Reviewed-on: https://chromium-review.googlesource.com/1114100
      Commit-Queue: Georg Neis <neis@chromium.org>
      Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54027}
      f1c79e02
  9. 25 Jun, 2018 1 commit
  10. 23 Jun, 2018 2 commits
  11. 21 Jun, 2018 1 commit
  12. 19 Jun, 2018 1 commit
  13. 11 Jun, 2018 1 commit
  14. 04 Jun, 2018 1 commit
  15. 01 Jun, 2018 2 commits
  16. 29 May, 2018 1 commit
  17. 17 May, 2018 1 commit
  18. 14 May, 2018 1 commit
  19. 23 Apr, 2018 3 commits
  20. 06 Apr, 2018 1 commit
  21. 05 Apr, 2018 1 commit
  22. 04 Apr, 2018 1 commit
  23. 23 Mar, 2018 1 commit
  24. 19 Mar, 2018 1 commit
  25. 08 Mar, 2018 1 commit
    • Benedikt Meurer's avatar
      [builtins] Add fast-path for the Promise.resolve lookup. · e122fc45
      Benedikt Meurer authored
      This adds a global protector to guard the lookup of "resolve" on the
      %Promise% intrinsic object (the initial Promise constructor), making
      sure that Promise.resolve yields the initial builtin method. We use
      this protector to avoid the lookup of "resolve" all the time inside
      of Promise.all and Promise.race, when called with constructor being
      the %Promise% intrinsic object.
      
      This improves the performance on the parallel-async-es2017-native
      benchmark by roughly 2-3%.
      
      Bug: v8:7253
      Change-Id: Ida93b88afbaeae61f17be4cd30ea6a78b4267cea
      Reviewed-on: https://chromium-review.googlesource.com/955564Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51810}
      e122fc45
  26. 02 Mar, 2018 1 commit
    • Benedikt Meurer's avatar
      [es2015] Extend the array iterator protector. · 1525374f
      Benedikt Meurer authored
      Previously the array iterator protector only guarded the lookup of the
      @@iterator symbol on the initial Array.prototype, and we had to use an
      additional map check on the %ArrayIteratorPrototype% to ensure that no
      one messed with the next() method.  This CL extends the array iterator
      protector to also guard the lookup of %ArrayIteratorPrototype%.next.
      
      This simplifies the code quite a bit and makes it more robust for cases
      where someone has to install additional methods on the iterator
      prototype, i.e. a custom async iterator.
      
      Bug: v8:7510, v8:7514
      Change-Id: Ie6080bb837a91a2b60b224597121470614210660
      Reviewed-on: https://chromium-review.googlesource.com/945728Reviewed-by: 's avatarPeter Marshall <petermarshall@chromium.org>
      Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51684}
      1525374f
  27. 22 Feb, 2018 1 commit
  28. 16 Feb, 2018 1 commit
  29. 14 Feb, 2018 1 commit
  30. 08 Feb, 2018 1 commit
    • Adam Klein's avatar
      Revert "[builtins] Mega-revert to address the Dev blocker in crbug.com/808911." · 3916401e
      Adam Klein authored
      This reverts commit 14108f4c.
      
      Reason for revert: Not the culprit for Canary microtask crashes
      
      Original change's description:
      > [builtins] Mega-revert to address the Dev blocker in crbug.com/808911.
      > 
      > - Revert "[builtins] Save one word in contexts for Promise.all."
      >   This reverts commit 7632da06.
      > - Revert "[builtins] Also use the Promise#then protector for Promise#finally()."
      >   This reverts commit d4f072ce.
      > - Revert "[builtins] Don't mess with entered context for MicrotaskCallbacks."
      >   This reverts commit 6703dacd.
      > - Revert "[debugger] Properly deal with settled promises in catch prediction."
      >   This reverts commit 40dd0658.
      > - Revert "[builtins] Widen the fast-path for Promise builtins."
      >   This reverts commit db0556b7.
      > - Revert "[builtins] Unify PerformPromiseThen and optimize it with TurboFan."
      >   This reverts commit a582199c.
      > - Revert "[builtins] Remove obsolete PromiseBuiltinsAssembler::AppendPromiseCallback."
      >   This reverts commit 6bf88852.
      > - Revert "[builtins] Turn NewPromiseCapability into a proper builtin."
      >   This reverts commit 313b490d.
      > - Revert "[builtins] Inline InternalPromiseThen into it's only caller"
      >   This reverts commit f7bd6a2f.
      > - Revert "[builtins] Implement Promise#catch by really calling into Promise#then."
      >   This reverts commit b23b098f.
      > - Revert "[promise] Remove incorrect fast path"
      >   This reverts commit 0f6eafe8.
      > - Revert "[builtins] Squeeze JSPromise::result and JSPromise::reactions into a single field."
      >   This reverts commit 8a677a28.
      > - Revert "[builtins] Refactor promises to reduce GC overhead."
      >   This reverts commit 8e7737cb.
      > 
      > Tbr: hpayer@chromium.org
      > Bug: chromium:800651, chromium:808911, v8:5691, v8:7253
      > Change-Id: I8c8ea5ed32ed62f6cd8b0d027a3707ddd891e5f1
      > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      > Reviewed-on: https://chromium-review.googlesource.com/906991
      > Commit-Queue: Yang Guo <yangguo@chromium.org>
      > Commit-Queue: Adam Klein <adamk@chromium.org>
      > Reviewed-by: Adam Klein <adamk@chromium.org>
      > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#51158}
      
      Change-Id: I09d958cbebd635a325809072a290f2f53df8c5d4
      Tbr: adamk@chromium.org,yangguo@chromium.org,bmeurer@chromium.org
      Bug: chromium:800651, chromium:808911, v8:5691, v8:7253
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/908988Reviewed-by: 's avatarAdam Klein <adamk@chromium.org>
      Commit-Queue: Adam Klein <adamk@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51181}
      3916401e
  31. 07 Feb, 2018 1 commit
    • Benedikt Meurer's avatar
      [builtins] Mega-revert to address the Dev blocker in crbug.com/808911. · 14108f4c
      Benedikt Meurer authored
      - Revert "[builtins] Save one word in contexts for Promise.all."
        This reverts commit 7632da06.
      - Revert "[builtins] Also use the Promise#then protector for Promise#finally()."
        This reverts commit d4f072ce.
      - Revert "[builtins] Don't mess with entered context for MicrotaskCallbacks."
        This reverts commit 6703dacd.
      - Revert "[debugger] Properly deal with settled promises in catch prediction."
        This reverts commit 40dd0658.
      - Revert "[builtins] Widen the fast-path for Promise builtins."
        This reverts commit db0556b7.
      - Revert "[builtins] Unify PerformPromiseThen and optimize it with TurboFan."
        This reverts commit a582199c.
      - Revert "[builtins] Remove obsolete PromiseBuiltinsAssembler::AppendPromiseCallback."
        This reverts commit 6bf88852.
      - Revert "[builtins] Turn NewPromiseCapability into a proper builtin."
        This reverts commit 313b490d.
      - Revert "[builtins] Inline InternalPromiseThen into it's only caller"
        This reverts commit f7bd6a2f.
      - Revert "[builtins] Implement Promise#catch by really calling into Promise#then."
        This reverts commit b23b098f.
      - Revert "[promise] Remove incorrect fast path"
        This reverts commit 0f6eafe8.
      - Revert "[builtins] Squeeze JSPromise::result and JSPromise::reactions into a single field."
        This reverts commit 8a677a28.
      - Revert "[builtins] Refactor promises to reduce GC overhead."
        This reverts commit 8e7737cb.
      
      Tbr: hpayer@chromium.org
      Bug: chromium:800651, chromium:808911, v8:5691, v8:7253
      Change-Id: I8c8ea5ed32ed62f6cd8b0d027a3707ddd891e5f1
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/906991
      Commit-Queue: Yang Guo <yangguo@chromium.org>
      Commit-Queue: Adam Klein <adamk@chromium.org>
      Reviewed-by: 's avatarAdam Klein <adamk@chromium.org>
      Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51158}
      14108f4c
  32. 04 Feb, 2018 1 commit
    • Benedikt Meurer's avatar
      [builtins] Widen the fast-path for Promise builtins. · db0556b7
      Benedikt Meurer authored
      This adds a new isolate wide Promise#then protector, which guards the
      "then" lookup for all JSPromise instances whose [[Prototype]] is the
      initial %PromisePrototype%. Thus arbitrary mutations to the
      Promise.prototype (i.e. monkey-patching other methods or installing
      new functions) no longer sent you down the slow-path. Use this protector
      in Promise.prototype.catch and in Promise.resolve.
      
      Drive-by-fix: Restructure the resolve logic a bit and avoid the
      expensive and large SameValue check, which can be turned into a simple
      reference equal, as the promise in there is known to be a JSPromise
      anyways.
      
      Bug: v8:7253
      Change-Id: If68b12c6bc6ca9c4d10552ae84854ebc3b5774f9
      Reviewed-on: https://chromium-review.googlesource.com/899302
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarSathya Gunasekaran <gsathya@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51085}
      db0556b7
  33. 23 Jan, 2018 1 commit
    • Benedikt Meurer's avatar
      [builtins] Extend the @@species protector to guard Promises. · 79e91f0c
      Benedikt Meurer authored
      Use this in the PromiseThen operation to skip the (expensive) lookup in
      the SpeciesConstructor operation. This yields in a nice 3-5% improvement
      on the bluebird and wikipedia benchmarks, and paves the way for inlining
      certain Promise operations into TurboFan optimized code later.
      
      On the micro-benchmark mentioned in the bug (from the findings doc), we
      reduce the overall execution time by 25%, which makes sense given that
      Promise.prototype.then spends a significant portion of it's time just
      figuring out the appropriate constructor.
      
      Bug: v8:7253, v8:7349
      Change-Id: Ia1577b59d1b7e4b8dbda83e2186583edab76695a
      Reviewed-on: https://chromium-review.googlesource.com/880681Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#50794}
      79e91f0c
  34. 16 Jan, 2018 1 commit
  35. 10 Jan, 2018 1 commit
    • Jakob Gruber's avatar
      Revert "Optimize TypedArraySpeciesCreate using SpeciesProtector of Array" · b131cc35
      Jakob Gruber authored
      This reverts commit 8fbc6a05.
      
      Reason for revert: https://crbug.com/800356
      
      Original change's description:
      > Optimize TypedArraySpeciesCreate using SpeciesProtector of Array
      > 
      > If there is no constructor or species updates on Array or TypedArrays,
      > then skip lookups of constructor and species so that we can create a new
      > typed array quickly. This path makes TA.p.slice() 4x faster in fast
      > cases.
      > 
      > Bug: v8:7161
      > Change-Id: Ib8d2a3f6b8b5ed356c5822a814164166d1285f64
      > Reviewed-on: https://chromium-review.googlesource.com/828343
      > Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#50423}
      
      TBR=jkummerow@chromium.org,jgruber@chromium.org,ishell@chromium.org,bmeurer@chromium.org,cwhan.tunz@gmail.com
      
      Change-Id: Icca07564d2a83710852eb797bac25f1d5600696e
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:7161
      Reviewed-on: https://chromium-review.googlesource.com/859156Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#50470}
      b131cc35
  36. 09 Jan, 2018 1 commit