* call onDestroy when disconnected
* lifecycle hooks and custom elements
- Call onMount in connectedCallback for customElements
- register onMount return values as on_disconnect-callbacks for customElements
- run on_disconnect callbacks in disconnectedCallback
* do not reset on_mount so that it can fire again if reinserted
* simpler isCustomElement & skip extra function call
- pass options.customElement down to mount_component
- remove expensive isCustomElement check
- only call add_render_callback if not customElement
Co-authored-by: Pontus Lundin <pontus.lundin@ica.se>
* Audio two-way `muted` bind property
Loosely based on a37ee81676?w=1
* Documentation
* fix test
* dont bother coercing muted, it happens automatically
Co-authored-by: Richard Harris <richard.a.harris@gmail.com>
Previously, these methods only applied to exported props.
Also, add $$inject option to constructor, which injects state before
running the update loop.
* start updating tests
* start implementing bitmask-based change tracking (#1943)
* oops
* fix some await block stuff
* slots
* reactive declarations
* component bindings etc
* start fixing slots
* fix store value invalidations
* slot stuff
* fixes
* fix
* fixes
* fix some slot stuff
* fix some invalidations
* fix if blocks
* fix a test
* destructuring in lets
* fix shadowing
* fix if block case
* all runtime tests passinfg
* almost all tests passing
* update tests
* never hoist writable vars in dev mode, fix debug statements
* beef up shadowing test
* always use renderer.reference
* fix sourcemaps
* ugh so close
* all tests passing. phase one complete, i guess
* add test for component with more than 31 dynamic values
* stable sort
* stable sort that preserves order
* linting
* failing test for bitmask overflow
* ok i think this is it
* lint
* rename changed to dirty, for more internal consistency
* update tests
* use bitwise comparison
* add comments... sort of
* update tests
* moar comments
* I don't know what happened to these tests