This cuts the overhead of customElements.define by roughly half, by:
- Keeping custom element callbacks alive with wrapper tracing, not maps.
Reading and writing maps is apparently slow.
- Looking up the definition for a constructor with constructor, private
symbol, array index; instead of private symbol to retrieve a map, map
lookup, string marshal, hash lookup.
- Retrieving callbacks uses one handle scope instead of creating one per
retrieval.
- Constructing a definition moves the observed attributes hash to the
definition instead of copying it.
This does not change behavior.
BUG=
710184