Also, I normalized them to all be sentences for consistency, and I moved
the reentrancy check from `m.mount` to `m.render` to be a little more
helpful. The router change during mounting is inconsequential and only
to avoid the new modified error, and the change to the update loop is to
send the original error if an error occurred while initializing the
default route. (This is all around more useful anyways.)
And while I was at it, I fixed an obscure bug with sync redraws.
* Fix#2434
* Treat holes as unkeyed, normalize boolean/null/undefined
This brings a lot better consistency with that API, even though it's
slightly breaking. (I had to update a bunch of tests to correspond with
it.)
* Fill in PR number [skip ci]
* Do not normalise component children on ingestion
* Don't normalise vnode children
* Component hyperscript tests: children aren't normalised
* test, not text
* Update change log: #2155 & #2064
- Remove docs for it
- Remove tests for it
- Add runtime check for unexpected reassignment, since we can't freeze
the property (we internally have to be able to modify it)