What happened to beta.13, beta.14, and beta.15? All unfortunately suffered
from problems that made it either impossible or unwise to upgrade to those
versions.
The comments are not related to the fix, they are just for future
reference.
The fix is that having an "own" property named `constructor` should
not disqualify an object from being considered an "instance of some
class." Instead, we should detect that an object like
`{constructor: ...}` is a plain object by noting that
`!(x instanceof x.constructor)`.
Tried to get everything to an rc.0 of the very latest version,
which required some research in some cases about the published
versions. For example, some packages had version histories like:
```
...
1.0.3-winr.2 January 20th, 2015
1.0.3-winr.3 February 24th, 2015 installed
1.0.3 March 17th, 2015 installed
1.0.4-anubhav.0 August 6th, 2015
1.0.4-plugins.0 July 22nd, 2015
1.0.5-galaxy.0 July 17th, 2015
```
In this case, I would bump the version from `1.0.4-plugins.0`
to `1.0.5-rc.0`, skipping `1.0.4`.
This included removing some internal version constraints. It would be
nice if package A could say "use B@2.0.0" (when both have changed), but
when they're both in the release, we need to make a release that has a
B@2.0.0-rc in it, which doesn't match that constraint. Fortunately,
constraints aren't necessary within a release anyway.
The react-template-helper package exports a {{> React}} template that
can be used to insert React components into Blaze templates. Due to
the interface that `React.render()` provides, React components rendered
this way must be placed as the only child of their parent element.
Prior to this change, we had runtime (as opposed to compile time) tests
in the react-template-helper package. These tests couldn't detect all
error cases (such as when the sibling is a conditional that starts
empty).
It's unfortunate that this change will make all template compilation
slower but we could improve that later with a change @glasser described
where build plugins can know what other build plugins are running for
the app being built.
TODO: Consider adding an option to `Spacebars.codeGen` with the name
of the template being compiled and add that to the error. This would
bring these errors to the same level as the runtime ones currently
thrown in the react-template-helper package.