Files
Leszek Swirski 92a172175f [objects] Remove HeapObjectLayout and clean up Tagged pointer API
- Merge HeapObjectLayout into HeapObject, making the latter a
  V8_OBJECT class with a `TaggedMember<Map> map_`.
- Clean up Tagged<T> constructors to only accept `const T*`, no longer
  allowing passing objects by value. Constructing from subclass by
  pointer (`Tagged<T>(const U*)`) now works through standard C++
  implicit pointer upcasting.
- Completely delete all Tagged::cast and Tagged<HeapObject>::cast member
  overloads, using Cast<T> instead.
- Delete the obsolete detail::TaggedOperatorArrowRef proxy class since
  operator-> now always returns direct pointers (T*).
- Avoid dereferencing `HeapObject` and subclasses, in particular using
  `*this`, passing around `this` where appropriate instead.

There are still some legacy-like behaviours, including accessing fields
by address instead of direct member access, and a new convenience
`ptr()` method on HeapObject for compatibility with older macros. These
can be cleaned up in the future.

TAG=agy
CONV=91ce437b-033f-493b-ac0d-1970ddfa653c

Bug: 42202654
Change-Id: Ifd9b4845d95d14aaf9df91489492d45e41b59fa7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7806341
SLSA-Policy-Verified: SLSA Policy Verification Service <devtools-gerritcodereview-exitgate@google.com>
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Jakob Linke <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/main@{#107056}
2026-05-05 03:55:03 -07:00
..