In `Spacebars.With` we embox the data context. This commit makes
that emboxing happen modulo `safeEquals`. So now if you
{{#with}} over a helper that returns an object, any time
that helper gets invalidated we re-run the computations in the block.
Fixes#2046 (though notably that example mutates the data context
from within a helper, which could lead to other types of unintended
behavior; it's probably in this particular example -- the data context
just gets added properties)
While this could mean that there's an indefinite wait before logging you
in, any condition where login configuration isn't being swiftly
published (after all, it should be cached) is a bigger problem.
`Accounts`/accounts-base is an awkward place to put this, because in
theory we wanted the packages like "twitter" to not depend on
accounts. But it turns out that service-configuration depends on
accounts anyway, so this isn't much of a regression. We can't put this
function in service-configuration because that package doesn't actually
do the subscription and make the ready handle. (Maybe oauth would be a
better place, but again, that's a package that doesn't currently depend
directly on accounts-base and would have to.)
Fixes#1911 and #2048.
You can't do ({hasOwnProperty: 12345}).hasOwnProperty("hasOwnProperty") -- think about it.
Basically, `obj.hasOwnProperty(key)` is considered harmful. `Object.prototype.hasOwnProperty.call(obj, key)` is fine. We should standardize on `_.has` or something and do a pass through the codebase.
This is my code so my bad.
We now call 'removedAt' and 'changedAt' with indices (instead
of 'removed' and 'changed'). While at it, fix a bug where
the 'movedTo' callback was firing with incorrect
indices.
commit f44d03d2c8bbfca32ae08fdabef35472c62042eb
Author: Avital Oliver <avital@thewe.net>
Date: Tue Apr 15 14:54:29 2014 -0700
A more complicated movedTo test that should catch a bug
commit 24f9ba3ffc708cf1af34e434ddf033c54d246614
Author: Avital Oliver <avital@thewe.net>
Date: Tue Apr 15 14:05:44 2014 -0700
Update tests and {{#each}} for new observe-sequence
This is only intended for testing. No data is preserved from one run to
the next, and if any mongod exits for any reason, the rest are killed;
there is no mongod restarting.
It takes a while (~20 seconds) to start up because it waits for the
replset to be ready.
Specifically:
- On client, clone parameters to sub and methods (so that if they're
modified outside before the method message is actually sent, before
the sub params are used for de-duping, or before resending messages
on reconnect, this doesn't affect what we do)
- On server, ensure that method bodies mutating their arguments does
not affect callers of Meteor.call (executing locally)
Fixes#2025.
This means we read less data (yay), but more importantly it means that
if the last entry contained custom EJSON types, we don't try to parse
them. This code gets called synchronously from the first
Meteor.Collection constructor, which can legitimately be before your
EJSON.addType call.
Fixes#2018.