v8/test/unittests/heap
Michael Lippautz 057ffb820e heap: Emit write barrier when setting internal fields
Internal fields are used for implementing edges to C++ objects in
Oilpan. When setting the fields on a JS API object, we should also
emit a write barrier for this edge.

This mechanism replaces the explicit write barrier in V8's API which
is provided through `JSHeapConsistency::*`.

The internal barrier should also be slightly faster as it doesn't
require any API calls.

Bug: v8:12356
Change-Id: I639d18141acfb910d0ded8d987d8a0916e25431d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3257709
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77749}
2021-11-06 07:33:41 +00:00
..
base cppgc, heap: Add Clear and IsEmpty methods to Worklist::Local 2020-10-20 21:59:38 +00:00
cppgc cppgc: Force EBO to always work with GCed 2021-11-03 22:23:59 +00:00
cppgc-js heap: Emit write barrier when setting internal fields 2021-11-06 07:33:41 +00:00
allocation-observer-unittest.cc [heap] Support removing of observers during Step() 2020-08-17 10:42:32 +00:00
barrier-unittest.cc Reland "[d8] Remove maximum workers limitation" 2019-07-30 07:56:17 +00:00
bitmap-test-utils.h [heap] Relax accessing markbits in ranges. 2019-02-25 15:28:41 +00:00
bitmap-unittest.cc [heap] Fix an out-of-bounds access in the marking bitmap 2020-04-20 09:07:57 +00:00
code-object-registry-unittest.cc [heap] Split out paged-spaces.h 2020-05-14 19:25:25 +00:00
embedder-tracing-unittest.cc [test][cleanup] Fix -Wshadow warnings in unittests 2021-09-27 08:59:01 +00:00
gc-idle-time-handler-unittest.cc Reland "Fix -Wimplicit-int-float-conversions." 2021-06-29 16:36:18 +00:00
gc-tracer-unittest.cc [heap] Make GarbageCollector an enum class 2021-09-27 07:01:25 +00:00
heap-controller-unittest.cc [cleanup] Replace all remaining Min/Max uses with std::min/max 2020-11-24 17:32:01 +00:00
heap-unittest.cc [ext-code-space] Make the code space external for real 2021-10-20 16:29:51 +00:00
heap-utils.cc cppgc,api: Add support for JS->C++ write barriers 2021-01-21 14:28:00 +00:00
heap-utils.h Revert "unittests: Provide Context in TestWithHeapInternals" 2021-10-27 15:05:10 +00:00
index-generator-unittest.cc [Heap]: Implement IndexGenerator for Jobs use cases. 2020-09-11 19:25:33 +00:00
list-unittest.cc [heap] Make Heap::Contains const 2020-05-13 13:19:22 +00:00
local-factory-unittest.cc [compiler-dispatcher] Move to full SFI keying 2021-11-04 15:11:44 +00:00
local-heap-unittest.cc Reland "[heap] Attach to shared isolate after setting up main thread" 2021-10-19 07:15:00 +00:00
marking-unittest.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
marking-worklist-unittest.cc [heap] Split marking worklist into global worklist and local worklists 2020-08-11 13:15:54 +00:00
memory-reducer-unittest.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
object-start-bitmap-unittest.cc [heap] Add object start bitmap for conservative stack scanning 2020-08-31 07:10:36 +00:00
object-stats-unittest.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
persistent-handles-unittest.cc [handles] Make DetachPersistent insert into ordered_blocks_ 2020-08-05 12:03:52 +00:00
progressbar-unittest.cc heap: Fix TSAN race when setting a flag after page initialization 2021-08-19 10:28:57 +00:00
safepoint-unittest.cc [test][cleanup] Fix -Wshadow warnings in unittests 2021-09-27 08:59:01 +00:00
slot-set-unittest.cc [heap] Verify filler slots don't need clearing 2020-04-28 16:24:45 +00:00
spaces-unittest.cc [sparkplug][x64] Enable short builtin calls in x64 when pointer compression is disabled 2021-10-06 09:04:43 +00:00
unmapper-unittest.cc Simplify the V8VirtualMemoryCage implementation 2021-09-17 09:38:35 +00:00
worklist-unittest.cc [v8 heap]: Track GlobalSize in worklist. 2020-02-07 16:12:30 +00:00