In a previous commit, I changed
doc = _.extend({}, doc);
to avoid using underscore, thus:
doc = { ...doc };
While this may seem harmless, it broke a few Mongo.Collection tests
because _.extend copies *all* properties, both own and inherited, whereas
object ...spread only copies own properties.
However, the correct way to fix this problem is *not* to revert to the old
behavior, since flattening the inherited properties of a document was
never actually what we wanted. The old behavior was subtly broken, too.
Instead, we need to create a new object with the same prototoype as the
provided document, then shallow-copy the own properties. Any properties or
methods inherited from the original prototype will then be available on
the new object, even though they didn't get copied over.
I've intentionally left some trivial formatting changes in this commit to
remind myself which broken tests were fixed by this change.
This temporarily reverts back to using @babel/runtime/helpers/* rather
than @babel/runtime/helpers/builtin/*, since some helpers (for example,
`slicedToArray`) were using code patterns that cannot be made to work via
polyfills in older browsers, e.g.
if (Symbol.iterator in Object(arr)) {...}
to test whether `arr` is iterable.
Remove type:"dynamic js" and .map files from `appcache` (app.manifest) since the
dynamic-import package doesn't load dynamic modules from `appcache`, so caching
those files with `appcache` is redundant.
Google's OAuth2 token endpoint
(https://accounts.google.com/o/oauth2/token) returns an
`expires_in` property in its response, which was being stored
internally as `expiresIn`. The `getServiceDataFromTokens`
function would only attempt to work with the `expiresIn` value
if the `tokens` object had a set `expiresAt` property, meaning
the `expiresIn` property was never used. This commit switches
the `expiresAt` check to `expiresIn`.
Fixes#9435.
* Stop serving the application manifest from /manifest.json
Meteor currently serves its own manifest file from
`/manifest.json`. This location is not application
configurable, and can conflict with other non-Meteor
defined manifest files, that are already being served
from this location. There isn't really any reason why
Meteor needs to use the `/manifest.json` location, so
this commit moves it to `/__meteor__/webapp/manifest.json`.
Fixes#6674.
* Add PR link to History.md
For a while the livedata `reconnect to a different server` test
was failing since the `reverse.meteor.com` host and application
were taken down, but nobody noticed. This is because even
though the test was still enabled, it was configured to swallow
the failure if the connection failed. `reverse.meteor.com` has
been brought back up, so this commit adjusts the test to make
sure it will properly fail if `reverse.meteor.com` goes down
again.
Fixes https://github.com/meteor/meteor/issues/8092.