1. 27 Sep, 2021 1 commit
  2. 13 Sep, 2021 1 commit
  3. 10 Aug, 2021 1 commit
    • Jakob Kummerow's avatar
      [bigint] Faster parsing from small strings · 7817cf1f
      Jakob Kummerow authored
      This patch significantly speeds up parsing of small BigInts. Its
      primary idea is to move the loop that's iterating over the string
      into the FromStringAccumulator API. That enables using function-
      local variables instead of member fields.
      A second optimization is to use a stack-allocated digit_t[] array
      for small sizes, before falling back to a (comparatively slow)
      std::vector.
      As a particularly fast path, when this stack-allocated storage is
      guaranteed to be enough, we can perform inlined multiply-and-add
      steps directly on that data.
      Finally, this patch changes the conversion of characters to their
      numeric values from computations to a lookup table, which is a bit
      faster for radixes <= 10 (where, in the old code, only one range
      needed to be checked), and a lot faster for radixes > 10.
      
      Bug: v8:11515
      Change-Id: Ifd8ec4799ac34447ba6d4350b7788b559307784c
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3064603
      Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarMaya Lekova <mslekova@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#76210}
      7817cf1f
  4. 30 Jul, 2021 1 commit
  5. 02 Jul, 2021 2 commits
    • Zhi An Ng's avatar
      Revert "[build] Separate out inspector as a shared library" · 50fb0a2f
      Zhi An Ng authored
      This reverts commit 92bfb63c.
      
      Reason for revert: Broke build https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20shared/43249/overview
      
      Original change's description:
      > [build] Separate out inspector as a shared library
      >
      > This makes src/inspector:inspector into a v8_component producing a
      > shared library in component builds. To enable this, all of its exported
      > are now marked with V8_INSPECTOR_EXPORT.
      >
      > This also inverts the dependency between src/inspector:inspector and
      > :v8_base_without_compiler, and instead makes d8 and some tests depend on
      > inspector rather than getting it via v8.
      >
      > As a result, the no_check_targets exclusions list in .gn is reduced.
      >
      > Ultimately embedders like chromium should depend on :v8 and optionally
      > src/inspector:inspector, but to allow that transition to occur, this
      > renames :v8 to :v8_lib and introduces a new :v8 which depends on v8 and
      > inspector. Once all embedders have changed to reflect the new structure,
      > this part can be reverted.
      >
      > Bug: v8:11917
      > Change-Id: Ia8b15f07fb15acc5e1f111b1a80248def4285fd0
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2999088
      > Reviewed-by: Clemens Backes <clemensb@chromium.org>
      > Reviewed-by: Michael Achenbach <machenbach@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Commit-Queue: Dan Elphick <delphick@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#75532}
      
      Bug: v8:11917
      Change-Id: I0ed27ed95211d13b8b3438a8c0a42d577806c475
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3003452
      Auto-Submit: Zhi An Ng <zhin@chromium.org>
      Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Cr-Commit-Position: refs/heads/master@{#75533}
      50fb0a2f
    • Dan Elphick's avatar
      [build] Separate out inspector as a shared library · 92bfb63c
      Dan Elphick authored
      This makes src/inspector:inspector into a v8_component producing a
      shared library in component builds. To enable this, all of its exported
      are now marked with V8_INSPECTOR_EXPORT.
      
      This also inverts the dependency between src/inspector:inspector and
      :v8_base_without_compiler, and instead makes d8 and some tests depend on
      inspector rather than getting it via v8.
      
      As a result, the no_check_targets exclusions list in .gn is reduced.
      
      Ultimately embedders like chromium should depend on :v8 and optionally
      src/inspector:inspector, but to allow that transition to occur, this
      renames :v8 to :v8_lib and introduces a new :v8 which depends on v8 and
      inspector. Once all embedders have changed to reflect the new structure,
      this part can be reverted.
      
      Bug: v8:11917
      Change-Id: Ia8b15f07fb15acc5e1f111b1a80248def4285fd0
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2999088Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#75532}
      92bfb63c
  6. 24 Jun, 2021 3 commits
  7. 23 Jun, 2021 1 commit
  8. 22 Jun, 2021 1 commit
  9. 18 Jun, 2021 1 commit
  10. 10 Jun, 2021 1 commit
  11. 26 Apr, 2021 1 commit
  12. 21 Apr, 2021 1 commit
  13. 25 Feb, 2021 1 commit
  14. 25 Nov, 2020 2 commits
  15. 24 Nov, 2020 1 commit
  16. 20 Nov, 2020 1 commit
  17. 17 Nov, 2020 2 commits
  18. 12 Nov, 2020 1 commit
  19. 20 Oct, 2020 1 commit
  20. 08 Sep, 2020 1 commit
  21. 07 Sep, 2020 1 commit
  22. 03 Sep, 2020 1 commit
    • Jakob Kummerow's avatar
      Revert "Check interrupts in runtime BigInt parser" · ec49e377
      Jakob Kummerow authored
      This reverts commit 825c61d8.
      
      Reason for revert: Processing interrupts triggers a DisallowHeapAllocation scope failure.
      
      Original change's description:
      > Check interrupts in runtime BigInt parser
      > 
      > The BigInt constructor has quadratic complexity while parsing strings,
      > and the input is unbounded. Interrupts should be checked during this
      > operation to ensure the host has control over runaway execution.
      > 
      > Change-Id: I15db9adeeafadc7b866a395dd8263aa8c2109ce8
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2384166
      > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
      > Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#69679}
      
      TBR=jkummerow@chromium.org,leszeks@chromium.org,marcel@laverdet.com
      
      Bug: chromium:1124477
      # Not skipping CQ checks because original CL landed > 1 day ago.
      
      Change-Id: I1ba8c1de1f809f71a1c4fae9b56a8bd40f9f7e7f
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2392815Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69703}
      ec49e377
  23. 02 Sep, 2020 1 commit
  24. 14 Aug, 2020 1 commit
    • Leszek Swirski's avatar
      [offthread] Change OffThreadIsolate to LocalIsolate · f1589bbe
      Leszek Swirski authored
      This patch introduces a new LocalIsolate and LocalFactory, which use
      LocalHeap and replace OffThreadIsolate and OffThreadFactory. This allows
      us to remove those classes, as well as the related OffThreadSpace,
      OffThreadLargeObjectSpace, OffThreadHeap, and OffThreadTransferHandle.
      OffThreadLogger becomes LocalLogger.
      
      LocalHeap behaves more like Heap than OffThreadHeap did, so this allows
      us to additionally remove the concept of "Finish" and "Publish" that the
      OffThreadIsolate had, and allows us to internalize strings directly with
      the newly-concurrent string table (where the implementation can now move
      to FactoryBase).
      
      This patch also removes the off-thread support from the deserializer
      entirely, as well as removing the LocalIsolateWrapper which allowed
      run-time distinction between Isolate and OffThreadIsolate. LocalHeap
      doesn't support the reservation model used by the deserializer, and we
      will likely move the deserializer to use LocalIsolate unconditionally
      once we figure out the details of how to do this.
      
      Bug: chromium:1011762
      
      Change-Id: I1a1a0a72952b19a8a4c167c11a863c153a1252fc
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2315990
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Auto-Submit: Leszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarDominik Inführ <dinfuehr@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69397}
      f1589bbe
  25. 20 Jul, 2020 1 commit
  26. 20 Mar, 2020 1 commit
  27. 09 Mar, 2020 1 commit
  28. 02 Mar, 2020 2 commits
  29. 27 Feb, 2020 1 commit
  30. 04 Feb, 2020 1 commit
  31. 26 Sep, 2019 1 commit
  32. 13 Sep, 2019 1 commit
  33. 30 May, 2019 1 commit
  34. 29 May, 2019 1 commit
    • Michael Mclaughlin's avatar
      Improve toString(radix) for doubles near zero · 348cc6f1
      Michael Mclaughlin authored
      Currently, Number.prototype.toString(radix) often fails to produce the
      least significant bit for doubles near zero. For example, for the
      minimum double, 5e-324, toString(2) produces "0". This means that a
      user cannot reliably get the exact binary or hexdecimal value of a
      double from JavaScript using toString.
      
      This patch makes a slight amendment to the DoubleToRadixCString
      function, so that doubles where the gap to the next double is 5e-324
      (i.e. doubles less than 2**-1021), are represented exactly in binary and
      other power-of-two bases, and close to exactly otherwise. It results
      in Number.prototype.toString producing the correct binary value for all
      doubles.
      
      R=jkummerow@chromium.org, mathias@chromium.org, yangguo@chromium.org
      
      Bug: v8:9294
      Change-Id: I71506149b7c4c0eac8c38675a1ee15fb4f36f9ef
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1631601
      Commit-Queue: Mathias Bynens <mathias@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarMathias Bynens <mathias@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#61925}
      348cc6f1