* Update ecmascript-runtime-{client,server} to core-js@3.1.4.
Also added a polyfill for Symbol.asyncIterator to server, modern, and
legacy, which should fix#9897.
* Add a test of for-await-of async iteration.
This should verify that #9897 is fixed.
This package is almost unnecessary now, though I suspect more polyfills
will be added in the future, so we might as well keep it.
Since we're loading so many fewer core-js modules, this change saves about
50ms of server startup time. That might not seem like much, but it's a
measurable savings that benefits every save-rebuild-restart-reload cycle.
This split gives us the ability to use different sets of polyfills for
server and client, which allows us to take better advantage of native
support in Node 4+.
We now rely on core-js as a peer dependency on the client (which is a win
because core-js is always installed along with babel-runtime), and as an
Npm.depends-style dependency on the server (which is necessary because
there's not always an an application to provide peer node_modules on the
server, e.g. in isopackets and compiler plugins).
Since we're using different sets of polyfills on the client and the
server, it didn't seem to make sense to rely on a single npm package, so
meteor-ecmascript-runtime has been removed.