1. 09 Mar, 2022 1 commit
    • Camillo Bruni's avatar
      [runtime] Clean up runtime function Arguments accesses · cead6573
      Camillo Bruni authored
      Replace all CONVERT_XXX_ARG_XXX() macros from runtime-util.h with direct
      calls to Arguments or the fully expanded equivalent.
      
      - This replaces many of the hard CHECKs with DCHECK (as is common
        practice in most V8 code)
      - Instead of relying on verbose comments we now have readable code
      - Rename Arguments.::xxx_at with Arguments::xxx_value_at since these
        methods don't return the Object but rather their double/int value
      
      - Add Oddball::ToBool helper
      - Add and use v8::internal::PropertyAttributesFromInt helper
      - Add stronger DCHECK for PropertyAttributes returned in
        GetPropertyAttributesWithInterceptorInternal
      
      
      
      Bug: v8:11263
      Change-Id: I8d531857e05d19f3198753b05af28d993a391854
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3497768Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Camillo Bruni <cbruni@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79418}
      cead6573
  2. 30 Jul, 2020 1 commit
  3. 08 Jul, 2020 1 commit
  4. 16 Apr, 2020 1 commit
    • Shu-yu Guo's avatar
      [weakrefs] Port FinalizationRegistry cleanup loop to Torque · dbbaccca
      Shu-yu Guo authored
      To avoid shrinking the unregister token map on each pop of the cleared
      cell list, the Torque implementation of the cleanup loop avoids
      shrinking the map until the end of the loop.
      
      To support that, PopClearedCellHoldings is refactored to the Torque
      PopClearedCell which calls the
      JSFinalization::RemoveCellFromUnregisterTokenMap and the runtime
      ShrinkFinalizationRegistryUnregisterTokenMap. The former cannot GC is
      and is implemented in CSA as a fast C call. The latter can GC and is a
      runtime call.
      
      This also incidentally makes uses of FinalizationRegistry without
      unregister token a fast path that doesn't have to leave Torque.
      
      Bug: v8:8179
      Change-Id: Ia0c3c5800d26e31319a818f164f6bd3267355aa6
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2137950
      Commit-Queue: Shu-yu Guo <syg@chromium.org>
      Reviewed-by: 's avatarMarja Hölttä <marja@chromium.org>
      Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67161}
      dbbaccca
  5. 30 Jul, 2019 1 commit
    • Sathya Gunasekaran's avatar
      [WeakRefs] Make cleanup callback run as a task · 743ce772
      Sathya Gunasekaran authored
      Previously, this was run as a microtask and this CL changes it to run
      as a separate task as mandated by the current WeakRef spec.
      
      This CL also introduces a FinalizationGroup type to the V8 API
      representing the JSFinalizationGroup. This has a `Cleanup`
      function that runs the cleanup callback associated with it.
      
      SetHostCleanupFinalizationGroupCallback is added to set
      the embedder defined HostCleanupFinalizationGroupCallback.
      
      ClearKeptObject is exposed on the v8::Isolate to reset the strongly
      held set of objects.
      
      The general workflow is the following:
      
      (a) When the GC notices that a given finalization group has dirty
          cells, it calls HostCleanupFinalizationGroupCallback with the given
          finalization group.
      
      (b) As part of HostCleanupFinalizationGroupCallback, the embedder
          enqueues a task that at some point later calls
          FinalizationGroup::Cleanup.
      
      (c) At some point in the future, FinalizationGroup::Cleanup is called,
          which runs the cleanup callback of the finalization group.
      
      This patch also includes d8 changes to use these new APIs. Currently,
      d8 cycles through the enqueued finalization groups after a synchronous
      turn (and it's microtask checkpoint) and runs the cleanup callbacks.
      
      Change-Id: I06eb4da2c103b2792a9c62bc4b98fd4e5c4892fc
      Bug: v8:8179
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1655655
      Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#62984}
      743ce772
  6. 12 Jun, 2019 1 commit
  7. 23 May, 2019 2 commits
  8. 22 May, 2019 1 commit
  9. 20 May, 2019 1 commit
  10. 17 May, 2019 3 commits
  11. 16 May, 2019 2 commits
  12. 30 Jan, 2019 1 commit
  13. 23 Nov, 2018 1 commit
  14. 13 Nov, 2018 1 commit
  15. 29 Oct, 2018 1 commit