v8/include
Anton Bikineev e29e64e729 unified-young-gen: Filter custom weak callbacks
Oilpan young generation currently remembers all weak callbacks to be
processed on each GC. This is needed to support UntracedMembers in the
old space. If the old object with UntracedMember (e.g.
ActiveScriptWrappableManager) holds a pointer to a young object, the
custom weak callback must be reexecuted on each minor GC, because the
custom callback is responsible for clearing UntracedMembers.

This is not necessary for weak containers. They hold WeakMembers, for
which we issue the regular write barrier. The CL distinguishes between
callbacks for weak containers and for custom objects. This aims to
speeds up weak processing, which currently may take >10ms.

Bug: v8:13475
Change-Id: I6964a6835dc84febddbefb5e2952d57f108d1232
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4080470
Commit-Queue: Anton Bikineev <bikineev@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84895}
2022-12-16 10:15:12 +00:00
..
cppgc unified-young-gen: Filter custom weak callbacks 2022-12-16 10:15:12 +00:00
libplatform [Tracing w/SDK] Replace TraceStateObserver with TrackEventSessionObserver 2022-12-01 11:18:24 +00:00
APIDesign.md
DEPS
DIR_METADATA
js_protocol-1.2.json
js_protocol-1.3.json [inspector] Remove Type Profiler 2022-10-10 11:50:16 +00:00
js_protocol.pdl [inspector] Allow to break only on caught exceptions. 2022-11-09 07:44:28 +00:00
OWNERS
v8-array-buffer.h [rab/gsab,api] Add resizable BackingStore creation 2022-12-14 01:54:00 +00:00
v8-callbacks.h [execution] Report first old space page as CrashKey 2022-11-02 08:26:30 +00:00
v8-container.h
v8-context.h [execution] Add ability to set the microtask queue for the context. 2022-10-26 16:40:21 +00:00
v8-cppgc.h [cppgc-js] Reuse stack object from V8 2022-11-08 16:47:47 +00:00
v8-data.h Mark Data constructor deleted. 2022-10-25 23:02:10 +00:00
v8-date.h Fix Date BiDi format 2022-07-11 17:19:43 +00:00
v8-debug.h
v8-embedder-heap.h [api] Advance EmedderHeapTracer deprecation 2022-10-14 09:29:13 +00:00
v8-embedder-state-scope.h
v8-exception.h
v8-extension.h
v8-external.h
v8-fast-api-calls.h [fastcall] Support external pointers in fast api calls 2022-12-01 14:19:33 +00:00
v8-forward.h
v8-function-callback.h
v8-function.h Implement Function::Experimental_IsNopFunction. 2022-08-01 01:36:02 +00:00
v8-initialization.h Reland "[sandbox] Fold V8_SANDBOXED_EXTERNAL_POINTERS into V8_ENABLE_SANDBOX" 2022-09-12 11:48:02 +00:00
v8-inspector-protocol.h
v8-inspector.h [inspector] Introduce debugger session stop API 2022-12-09 12:08:58 +00:00
v8-internal.h [fastcall] Support external pointers in fast api calls 2022-12-01 14:19:33 +00:00
v8-isolate.h [api] mark readonly usage of StartupData as const 2022-12-09 16:58:44 +00:00
v8-json.h
v8-local-handle.h
v8-locker.h [api] Advance API deprecation 2022-08-16 08:11:57 +00:00
v8-maybe.h
v8-memory-span.h
v8-message.h [api] Advance API deprecation 2022-08-16 08:11:57 +00:00
v8-metrics.h [wasm] Deprecate CPU timings in metrics 2022-12-15 14:25:48 +00:00
v8-microtask-queue.h [execution] Pass microtask queue from Context to MicrotasksScope 2022-10-19 14:56:37 +00:00
v8-microtask.h
v8-object.h [sandbox] Prepare ExternalPointerTable rollout 2022-07-11 13:34:54 +00:00
v8-persistent-handle.h
v8-platform.h [Tracing w/SDK] Replace TraceStateObserver with TrackEventSessionObserver 2022-12-01 11:18:24 +00:00
v8-primitive-object.h
v8-primitive.h Reland "[strings] Support shared external strings" 2022-09-07 08:54:16 +00:00
v8-profiler.h [profiler] add Serialize to v8::CpuProfile 2022-10-25 10:49:04 +00:00
v8-promise.h
v8-proxy.h
v8-regexp.h [regexp] Add v-Flag for Unicode Sets 2022-09-06 17:51:56 +00:00
v8-script.h [api] Expose parsed module source map urls 2022-10-05 08:13:48 +00:00
v8-snapshot.h [api] mark readonly usage of StartupData as const 2022-12-09 16:58:44 +00:00
v8-statistics.h
v8-template.h api: Expose %MapIteratorPrototype% and %SetIteratorPrototype% 2022-11-10 15:50:48 +00:00
v8-traced-handle.h [handles] Split off traced handles from regular global handles 2022-10-24 10:04:08 +00:00
v8-typed-array.h
v8-unwinder-state.h [mips32] Delete mips32 from v8 2022-09-13 07:54:54 +00:00
v8-unwinder.h
v8-util.h
v8-value-serializer-version.h
v8-value-serializer.h [shared-struct] Rework shared value serializer API again 2022-09-07 23:41:26 +00:00
v8-value.h [inspector] Add [[WeakRefTarget]] internal property. 2022-10-21 12:14:52 +00:00
v8-version-string.h
v8-version.h Version 11.1.0 2022-12-15 10:26:39 +00:00
v8-wasm-trap-handler-posix.h
v8-wasm-trap-handler-win.h
v8-wasm.h [wasm][API] Remove deprecated API 2022-08-29 10:43:55 +00:00
v8-weak-callback-info.h
v8.h
v8config.h [ptr-compr] Mark base() as V8_CONST 2022-12-05 10:43:25 +00:00