-
Camillo Bruni authored
This CL prepares WebSnapshot for skipping and re-injecting external references in the web snapshot. External references are encoded as separate object type and allows us to create partial snapshots at runtime and reconnect a deserialised snapshot to an existing object graph. Part II will also collect all objects which cannot be serialized by the web-snapshot serializer. Usage: snapshot = %WebSnapshotSerialize(root, skip_externals); object = %eWebSnapshotDeserializ(snapshot, replaced_externals); Drive-by-changes: - Reduce JSObject Map size in serializer (we ended up with 4 embedder fields) - Avoid adding non-HeapObject to the discovery_queue_ - Split off ReadXXX handlers into separate functions Bug: v8:11525 Change-Id: Ia6a9914259614c6c288667621b38daa0202d4d72 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3461936Reviewed-by: Marja Hölttä <marja@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/main@{#79211}
a7a996ab