• Camillo Bruni's avatar
    [web-snapshots] Add runtime function for WebSnapshot creation Part I · a7a996ab
    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: 's avatarMarja Hölttä <marja@chromium.org>
    Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
    Commit-Queue: Camillo Bruni <cbruni@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#79211}
    a7a996ab
startup-serializer.cc 10.2 KB