Construct the per-element collection and run the mount-time init pass.
Pre-mount user writes (element.foo = …) and pre-mount attribute writes
(setAttribute) leave traces on the element itself — a shadowing data
property and an attribute, respectively — which each ElementProp's
init pass picks up. So there's no separate initialize() step: the
constructor allocates every wrapper and then runs init on each.
The split is internal (allocate-all → init-all) so cascades during init always find existing wrappers in the Map — a wrapper materialized mid-cascade would fire its own default event in addition to the cascading update.
The element this collection belongs to.
Attributes currently being written reflexively by an ElementProp; the resulting attributeChangedCallback should be ignored.
Whether propchange-style event dispatch is currently held. While true,
fired events are queued; flipping to false flushes the queue in order.
The class-level prop spec collection.
Propagate an observed attribute change to every prop reflected from it.
Attribute name.
OptionaloldValue: stringGet the ElementProp wrapper for a prop by name, creating it on demand from this element's own class-level Props.
Fire propchange events for ep and cascade updates to any dependents.
The prop that changed.
Change descriptor (see ElementProp#set).
Per-element collection of ElementProp wrappers. Owns per-element state: stored values, paused/queued events, and attribute echo suppression.