mirror of
https://github.com/lexmount/moli.git
synced 2026-11-13 08:08:10 +00:00
Share a lazy inert owner across each document's template contents and keep HTML/XML semantics, interface identity, and template-owner state separate. Cloning preserves interfaces while creating independent owner state. Separate portable Document metadata from arena-local relationships. Use one metadata-copy boundary for Document cloning and main-document replacement, clearing template-owner and CSS-target handles while keeping whole-DOM snapshots and copy-on-write storage relationships intact. Metadata copies also discard base-element href/target caches while retaining about base URLs and explicit overrides; only DOM node cloning freezes computed base URLs. Detached Document URL readers use native metadata without JS URL/documentURI/baseURI shadow state, including selector and bridge readers. Apply the DOM-specific document cloning rules separately: freeze the source computed base URL as an override, separately retain the inherited about base URL, and rebuild base-element caches from the cloned tree. Preserve main-document replacement metadata semantics. Establish exact HTML template identity and associated fragment allocation in one native entry shared by DOM and parser creation. Clone actual native contents rather than guessing from names, preserving foreign and mixed-case elements through serialization, deep cloning, import and adoption. Keep HTML createElement normalization at its binding boundary; namespace-aware creation and wrapper selection preserve the exact local name, including registry paths. Plan per-node adoption targets across ordinary children, shadow roots and template contents. Retarget custom-element registries and callbacks with the actual destination documents, and clear cross-document shadow sheets while retaining sheets within a document and its own template owner. Avoid preparing unused inert style sources. Cover cross-arena ID collisions, metadata preservation, snapshot isolation, nested templates, deep adoption, iframe/detached documents, cloned interfaces, retained sheet arrays, registry associations and URL behavior.