Reorganize ecmascript-runtime-client to tolerate more core-js versions.

By not implicitly assuming a particular version of core-js (by importing
specific modules), we can avoid the problems reported in #8699.

Fixes #8699.
This commit is contained in:
Ben Newman
2017-05-18 12:31:00 -04:00
parent 0fbb97432c
commit 02cbf94834

View File

@@ -2,6 +2,16 @@ try {
require("core-js/modules/es6.symbol");
require("core-js/modules/es6.map");
require("core-js/modules/es6.set");
var core = function () {
try {
return require("core-js/modules/_core");
} catch (e) {
// Older versions of core-js had a different file layout.
return require("core-js/modules/$.core");
}
}();
} catch (e) {
throw new Error([
"The core-js npm package could not be found in your node_modules ",
@@ -12,124 +22,31 @@ try {
].join("\n"));
}
var core = function () {
try {
return require("core-js/modules/_core");
} catch (e) {
// Older versions of core-js had a different file layout.
return require("core-js/modules/$.core");
}
}();
Symbol = exports.Symbol = core.Symbol;
Map = exports.Map = core.Map;
Set = exports.Set = core.Set;
// List of polyfills generated by babel-preset-env with the following
// .babelrc configuration:
//
// {
// "presets": [
// ["env", {
// "targets": {
// "browsers": [
// "last 3 versions"
// ]
// },
// "polyfill": true,
// "useBuiltIns": true
// }]
// ]
// }
//
// Supported browsers: http://browserl.ist/?q=last+3+versions
//
// Note that the es6.reflect.* and es6.typed.* modules have been commented
// out for bundle size reasons, and the es6.promise modules are not used
// because Meteor provides its own Promise polyfill.
// ECMAScript 2015 polyfills.
require("core-js/es6/array");
require("core-js/es6/function");
require("core-js/es6/math");
require("core-js/es6/object");
require("core-js/es6/string");
require("core-js/es6/weak-map");
require("core-js/es6/weak-set");
// require("core-js/modules/es6.typed.array-buffer");
// require("core-js/modules/es6.typed.data-view");
// require("core-js/modules/es6.typed.int8-array");
// require("core-js/modules/es6.typed.uint8-array");
// require("core-js/modules/es6.typed.uint8-clamped-array");
// require("core-js/modules/es6.typed.int16-array");
// require("core-js/modules/es6.typed.uint16-array");
// require("core-js/modules/es6.typed.int32-array");
// require("core-js/modules/es6.typed.uint32-array");
// require("core-js/modules/es6.typed.float32-array");
// require("core-js/modules/es6.typed.float64-array");
require("core-js/modules/es6.weak-map");
require("core-js/modules/es6.weak-set");
// require("core-js/modules/es6.reflect.apply");
// require("core-js/modules/es6.reflect.construct");
// require("core-js/modules/es6.reflect.define-property");
// require("core-js/modules/es6.reflect.delete-property");
// require("core-js/modules/es6.reflect.get");
// require("core-js/modules/es6.reflect.get-own-property-descriptor");
// require("core-js/modules/es6.reflect.get-prototype-of");
// require("core-js/modules/es6.reflect.has");
// require("core-js/modules/es6.reflect.is-extensible");
// require("core-js/modules/es6.reflect.own-keys");
// require("core-js/modules/es6.reflect.prevent-extensions");
// require("core-js/modules/es6.reflect.set");
// require("core-js/modules/es6.reflect.set-prototype-of");
require("core-js/modules/es6.object.assign");
require("core-js/modules/es6.object.is");
require("core-js/modules/es6.object.set-prototype-of");
// require("core-js/modules/es6.promise");
require("core-js/modules/es6.function.bind");
require("core-js/modules/es6.function.name");
require("core-js/modules/es6.function.has-instance");
require("core-js/modules/es6.string.raw");
require("core-js/modules/es6.string.from-code-point");
require("core-js/modules/es6.string.code-point-at");
require("core-js/modules/es6.string.repeat");
require("core-js/modules/es6.string.starts-with");
require("core-js/modules/es6.string.ends-with");
require("core-js/modules/es6.string.includes");
require("core-js/modules/es6.regexp.flags");
require("core-js/modules/es6.regexp.match");
require("core-js/modules/es6.regexp.replace");
require("core-js/modules/es6.regexp.split");
require("core-js/modules/es6.regexp.search");
require("core-js/modules/es6.array.from");
require("core-js/modules/es6.array.of");
require("core-js/modules/es6.array.copy-within");
require("core-js/modules/es6.array.find");
require("core-js/modules/es6.array.find-index");
require("core-js/modules/es6.array.fill");
require("core-js/modules/es6.array.iterator");
require("core-js/modules/es6.number.is-finite");
require("core-js/modules/es6.number.is-integer");
require("core-js/modules/es6.number.is-safe-integer");
require("core-js/modules/es6.number.is-nan");
require("core-js/modules/es6.number.epsilon");
require("core-js/modules/es6.number.min-safe-integer");
require("core-js/modules/es6.number.max-safe-integer");
require("core-js/modules/es6.math.acosh");
require("core-js/modules/es6.math.asinh");
require("core-js/modules/es6.math.atanh");
require("core-js/modules/es6.math.cbrt");
require("core-js/modules/es6.math.clz32");
require("core-js/modules/es6.math.cosh");
require("core-js/modules/es6.math.expm1");
require("core-js/modules/es6.math.fround");
require("core-js/modules/es6.math.hypot");
require("core-js/modules/es6.math.imul");
require("core-js/modules/es6.math.log1p");
require("core-js/modules/es6.math.log10");
require("core-js/modules/es6.math.log2");
require("core-js/modules/es6.math.sign");
require("core-js/modules/es6.math.sinh");
require("core-js/modules/es6.math.tanh");
require("core-js/modules/es6.math.trunc");
require("core-js/modules/es7.array.includes");
require("core-js/modules/es7.object.values");
require("core-js/modules/es7.object.entries");
require("core-js/modules/es7.object.get-own-property-descriptors");
require("core-js/modules/es7.string.pad-start");
require("core-js/modules/es7.string.pad-end");
require("core-js/modules/web.timers");
require("core-js/modules/web.immediate");
require("core-js/modules/web.dom.iterable");
// ECMAScript 2017 polyfills.
require("core-js/es7/array");
require("core-js/es7/object");
// We want everything from the core-js/es6/number module except
// es6.number.constructor.
require('core-js/modules/es6.number.epsilon');
require('core-js/modules/es6.number.is-finite');
require('core-js/modules/es6.number.is-integer');
require('core-js/modules/es6.number.is-nan');
require('core-js/modules/es6.number.is-safe-integer');
require('core-js/modules/es6.number.max-safe-integer');
require('core-js/modules/es6.number.min-safe-integer');
require('core-js/modules/es6.number.parse-float');
require('core-js/modules/es6.number.parse-int');