diff --git a/lighthouse-core/audits/legacy-javascript.js b/lighthouse-core/audits/legacy-javascript.js index 56f2c40b5f3f..2ba92b1a9590 100644 --- a/lighthouse-core/audits/legacy-javascript.js +++ b/lighthouse-core/audits/legacy-javascript.js @@ -148,9 +148,14 @@ class LegacyJavascript extends Audit { // TODO: perhaps this is the wrong place to check for a CDN polyfill. Remove? // expression += `|;e\\([^,]+,${qt(objectWithoutPrototype)},{${property}:`; - // Minified pattern. + // core-js@2 minified pattern. // $export($export.S,"Date",{now:function expression += `|\\$export\\([^,]+,${qt(objectWithoutPrototype)},{${property}:`; + + // core-js@3 minified pattern. + // {target:"Array",proto:true},{fill:fill + // {target:"Array",proto:true,forced:!HAS_SPECIES_SUPPORT||!USES_TO_LENGTH},{filter: + expression += `|{target:${qt(objectWithoutPrototype)}\\S*},{${property}:`; } else { // WeakSet, etc. expression += `|function ${property}\\(`; @@ -162,88 +167,101 @@ class LegacyJavascript extends Audit { static getPolyfillData() { return [ /* eslint-disable max-len */ - {module: 'es6.array.fill', name: 'Array.prototype.fill'}, - {module: 'es6.array.filter', name: 'Array.prototype.filter'}, - {module: 'es6.array.find', name: 'Array.prototype.find'}, - {module: 'es6.array.find-index', name: 'Array.prototype.findIndex'}, - {module: 'es6.array.for-each', name: 'Array.prototype.forEach'}, - {module: 'es6.array.from', name: 'Array.from'}, - {module: 'es6.array.is-array', name: 'Array.isArray'}, - {module: 'es6.array.last-index-of', name: 'Array.prototype.lastIndexOf'}, - {module: 'es6.array.map', name: 'Array.prototype.map'}, - {module: 'es6.array.of', name: 'Array.of'}, - {module: 'es6.array.reduce', name: 'Array.prototype.reduce'}, - {module: 'es6.array.reduce-right', name: 'Array.prototype.reduceRight'}, - {module: 'es6.array.some', name: 'Array.prototype.some'}, - {module: 'es6.date.now', name: 'Date.now'}, - {module: 'es6.date.to-iso-string', name: 'Date.prototype.toISOString'}, - {module: 'es6.date.to-json', name: 'Date.prototype.toJSON'}, - {module: 'es6.date.to-string', name: 'Date.prototype.toString'}, - {module: 'es6.function.name', name: 'Function.prototype.name'}, - {module: 'es6.map', name: 'Map'}, - {module: 'es6.number.is-integer', name: 'Number.isInteger'}, - {module: 'es6.number.is-safe-integer', name: 'Number.isSafeInteger'}, - {module: 'es6.number.parse-float', name: 'Number.parseFloat'}, - {module: 'es6.number.parse-int', name: 'Number.parseInt'}, - {module: 'es6.object.assign', name: 'Object.assign'}, - {module: 'es6.object.create', name: 'Object.create'}, - {module: 'es6.object.define-properties', name: 'Object.defineProperties'}, - {module: 'es6.object.define-property', name: 'Object.defineProperty'}, - {module: 'es6.object.freeze', name: 'Object.freeze'}, - {module: 'es6.object.get-own-property-descriptor', name: 'Object.getOwnPropertyDescriptor'}, - {module: 'es6.object.get-own-property-names', name: 'Object.getOwnPropertyNames'}, - {module: 'es6.object.get-prototype-of', name: 'Object.getPrototypeOf'}, - {module: 'es6.object.is-extensible', name: 'Object.isExtensible'}, - {module: 'es6.object.is-frozen', name: 'Object.isFrozen'}, - {module: 'es6.object.is-sealed', name: 'Object.isSealed'}, - {module: 'es6.object.keys', name: 'Object.keys'}, - {module: 'es6.object.prevent-extensions', name: 'Object.preventExtensions'}, - {module: 'es6.object.seal', name: 'Object.seal'}, - {module: 'es6.object.set-prototype-of', name: 'Object.setPrototypeOf'}, - {module: 'es6.promise', name: 'Promise'}, - {module: 'es6.reflect.apply', name: 'Reflect.apply'}, - {module: 'es6.reflect.construct', name: 'Reflect.construct'}, - {module: 'es6.reflect.define-property', name: 'Reflect.defineProperty'}, - {module: 'es6.reflect.delete-property', name: 'Reflect.deleteProperty'}, - {module: 'es6.reflect.get', name: 'Reflect.get'}, - {module: 'es6.reflect.get-own-property-descriptor', name: 'Reflect.getOwnPropertyDescriptor'}, - {module: 'es6.reflect.get-prototype-of', name: 'Reflect.getPrototypeOf'}, - {module: 'es6.reflect.has', name: 'Reflect.has'}, - {module: 'es6.reflect.is-extensible', name: 'Reflect.isExtensible'}, - {module: 'es6.reflect.own-keys', name: 'Reflect.ownKeys'}, - {module: 'es6.reflect.prevent-extensions', name: 'Reflect.preventExtensions'}, - {module: 'es6.reflect.set', name: 'Reflect.set'}, - {module: 'es6.reflect.set-prototype-of', name: 'Reflect.setPrototypeOf'}, - {module: 'es6.set', name: 'Set'}, - {module: 'es6.string.code-point-at', name: 'String.prototype.codePointAt'}, - {module: 'es6.string.ends-with', name: 'String.prototype.endsWith'}, - {module: 'es6.string.from-code-point', name: 'String.fromCodePoint'}, - {module: 'es6.string.includes', name: 'String.prototype.includes'}, - {module: 'es6.string.raw', name: 'String.raw'}, - {module: 'es6.string.repeat', name: 'String.prototype.repeat'}, - {module: 'es6.string.starts-with', name: 'String.prototype.startsWith'}, - {module: 'es6.string.trim', name: 'String.prototype.trim'}, - {module: 'es6.typed.array-buffer', name: 'ArrayBuffer'}, - {module: 'es6.typed.data-view', name: 'DataView'}, - {module: 'es6.typed.float32-array', name: 'Float32Array'}, - {module: 'es6.typed.float64-array', name: 'Float64Array'}, - {module: 'es6.typed.int16-array', name: 'Int16Array'}, - {module: 'es6.typed.int32-array', name: 'Int32Array'}, - {module: 'es6.typed.int8-array', name: 'Int8Array'}, - {module: 'es6.typed.uint16-array', name: 'Uint16Array'}, - {module: 'es6.typed.uint32-array', name: 'Uint32Array'}, - {module: 'es6.typed.uint8-array', name: 'Uint8Array'}, - {module: 'es6.typed.uint8-clamped-array', name: 'Uint8ClampedArray'}, - {module: 'es6.weak-map', name: 'WeakMap'}, - {module: 'es6.weak-set', name: 'WeakSet'}, - {module: 'es7.array.includes', name: 'Array.prototype.includes'}, - {module: 'es7.object.entries', name: 'Object.entries'}, - {module: 'es7.object.get-own-property-descriptors', name: 'Object.getOwnPropertyDescriptors'}, - {module: 'es7.object.values', name: 'Object.values'}, - {module: 'es7.string.pad-end', name: 'String.prototype.padEnd'}, - {module: 'es7.string.pad-start', name: 'String.prototype.padStart'}, + ['Array.prototype.fill', 'es6.array.fill'], + ['Array.prototype.filter', 'es6.array.filter'], + ['Array.prototype.find', 'es6.array.find'], + ['Array.prototype.findIndex', 'es6.array.find-index'], + ['Array.prototype.forEach', 'es6.array.for-each'], + ['Array.from', 'es6.array.from'], + ['Array.isArray', 'es6.array.is-array'], + ['Array.prototype.lastIndexOf', 'es6.array.last-index-of'], + ['Array.prototype.map', 'es6.array.map'], + ['Array.of', 'es6.array.of'], + ['Array.prototype.reduce', 'es6.array.reduce'], + ['Array.prototype.reduceRight', 'es6.array.reduce-right'], + ['Array.prototype.some', 'es6.array.some'], + ['Date.now', 'es6.date.now'], + ['Date.prototype.toISOString', 'es6.date.to-iso-string'], + ['Date.prototype.toJSON', 'es6.date.to-json'], + ['Date.prototype.toString', 'es6.date.to-string'], + ['Function.prototype.name', 'es6.function.name'], + ['Map', 'es6.map'], + ['Number.isInteger', 'es6.number.is-integer'], + ['Number.isSafeInteger', 'es6.number.is-safe-integer'], + ['Number.parseFloat', 'es6.number.parse-float'], + ['Number.parseInt', 'es6.number.parse-int'], + ['Object.assign', 'es6.object.assign'], + ['Object.create', 'es6.object.create'], + ['Object.defineProperties', 'es6.object.define-properties'], + ['Object.defineProperty', 'es6.object.define-property'], + ['Object.freeze', 'es6.object.freeze'], + ['Object.getOwnPropertyDescriptor', 'es6.object.get-own-property-descriptor'], + ['Object.getOwnPropertyNames', 'es6.object.get-own-property-names'], + ['Object.getPrototypeOf', 'es6.object.get-prototype-of'], + ['Object.isExtensible', 'es6.object.is-extensible'], + ['Object.isFrozen', 'es6.object.is-frozen'], + ['Object.isSealed', 'es6.object.is-sealed'], + ['Object.keys', 'es6.object.keys'], + ['Object.preventExtensions', 'es6.object.prevent-extensions'], + ['Object.seal', 'es6.object.seal'], + ['Object.setPrototypeOf', 'es6.object.set-prototype-of'], + ['Promise', 'es6.promise'], + ['Reflect.apply', 'es6.reflect.apply'], + ['Reflect.construct', 'es6.reflect.construct'], + ['Reflect.defineProperty', 'es6.reflect.define-property'], + ['Reflect.deleteProperty', 'es6.reflect.delete-property'], + ['Reflect.get', 'es6.reflect.get'], + ['Reflect.getOwnPropertyDescriptor', 'es6.reflect.get-own-property-descriptor'], + ['Reflect.getPrototypeOf', 'es6.reflect.get-prototype-of'], + ['Reflect.has', 'es6.reflect.has'], + ['Reflect.isExtensible', 'es6.reflect.is-extensible'], + ['Reflect.ownKeys', 'es6.reflect.own-keys'], + ['Reflect.preventExtensions', 'es6.reflect.prevent-extensions'], + ['Reflect.set', 'es6.reflect.set'], + ['Reflect.setPrototypeOf', 'es6.reflect.set-prototype-of'], + ['Set', 'es6.set'], + ['String.prototype.codePointAt', 'es6.string.code-point-at'], + ['String.prototype.endsWith', 'es6.string.ends-with'], + ['String.fromCodePoint', 'es6.string.from-code-point'], + ['String.prototype.includes', 'es6.string.includes'], + ['String.raw', 'es6.string.raw'], + ['String.prototype.repeat', 'es6.string.repeat'], + ['String.prototype.startsWith', 'es6.string.starts-with'], + ['String.prototype.trim', 'es6.string.trim'], + // These break the coreJs2/coreJs3 naming pattern so are set explicitly. + {name: 'ArrayBuffer', coreJs2Module: 'es6.typed.array-buffer', coreJs3Module: 'es.array-buffer.constructor'}, + {name: 'DataView', coreJs2Module: 'es6.typed.data-view', coreJs3Module: 'es.data-view'}, + ['Float32Array', 'es6.typed.float32-array'], + ['Float64Array', 'es6.typed.float64-array'], + ['Int16Array', 'es6.typed.int16-array'], + ['Int32Array', 'es6.typed.int32-array'], + ['Int8Array', 'es6.typed.int8-array'], + ['Uint16Array', 'es6.typed.uint16-array'], + ['Uint32Array', 'es6.typed.uint32-array'], + ['Uint8Array', 'es6.typed.uint8-array'], + ['Uint8ClampedArray', 'es6.typed.uint8-clamped-array'], + ['WeakMap', 'es6.weak-map'], + ['WeakSet', 'es6.weak-set'], + ['Array.prototype.includes', 'es7.array.includes'], + ['Object.entries', 'es7.object.entries'], + ['Object.getOwnPropertyDescriptors', 'es7.object.get-own-property-descriptors'], + ['Object.values', 'es7.object.values'], + ['String.prototype.padEnd', 'es7.string.pad-end'], + ['String.prototype.padStart', 'es7.string.pad-start'], /* eslint-enable max-len */ - ]; + ].map(data => { + if (!Array.isArray(data)) return data; + + const [name, coreJs2Module] = data; + return { + name, + coreJs2Module, + coreJs3Module: coreJs2Module + .replace('es6.', 'es.') + .replace('es7.', 'es.') + .replace('typed.', 'typed-array.'), + }; + }); } /** @@ -306,11 +324,12 @@ class LegacyJavascript extends Audit { // If it's a bundle with source maps, add in the polyfill modules by name too. const bundle = bundles.find(b => b.script.src === networkRecord.url); if (bundle) { - for (const {module, name} of polyfillData) { + for (const {coreJs2Module, coreJs3Module, name} of polyfillData) { // Skip if the pattern matching found a match for this polyfill. if (matches.some(m => m.name === name)) continue; - const source = bundle.rawMap.sources.find(source => source.endsWith(`${module}.js`)); + const source = bundle.rawMap.sources.find(source => + source.endsWith(`${coreJs2Module}.js`) || source.endsWith(`${coreJs3Module}.js`)); if (!source) continue; const mapping = bundle.map.mappings().find(m => m.sourceURL === source); diff --git a/lighthouse-core/scripts/legacy-javascript/run.js b/lighthouse-core/scripts/legacy-javascript/run.js index d29c03abbcd1..42122824bda1 100644 --- a/lighthouse-core/scripts/legacy-javascript/run.js +++ b/lighthouse-core/scripts/legacy-javascript/run.js @@ -25,6 +25,7 @@ const hash = crypto .update(fs.readFileSync(`${__dirname}/yarn.lock`, 'utf8')) .update(fs.readFileSync(`${__dirname}/run.js`, 'utf8')) .update(fs.readFileSync(`${__dirname}/main.js`, 'utf8')) + .update(fs.readFileSync(require.resolve('../../audits/legacy-javascript.js'), 'utf8')) .digest('hex'); const VARIANT_DIR = `${__dirname}/variants/${hash}`; @@ -34,7 +35,7 @@ const STAGE = process.env.STAGE || 'all'; const mainCode = fs.readFileSync(`${__dirname}/main.js`, 'utf-8'); const plugins = LegacyJavascript.getTransformPatterns().map(pattern => pattern.name); -const polyfills = LegacyJavascript.getPolyfillData().map(d => d.module); +const polyfills = LegacyJavascript.getPolyfillData(); /** * @param {string} command @@ -95,6 +96,7 @@ async function createVariant(options) { `${dir}/main.transpiled.js`, '-o', `${dir}/main.bundle.js`, '--debug', // source maps + '--full-paths=false', ]); // Minify. @@ -217,6 +219,13 @@ function createSummarySizes() { fs.writeFileSync(`${__dirname}/summary-sizes.txt`, lines.join('\n')); } +/** + * @param {string} module + */ +function makeRequireCodeForPolyfill(module) { + return `require("../../../../node_modules/core-js/modules/${module}")`; +} + async function main() { for (const plugin of plugins) { await createVariant({ @@ -254,12 +263,23 @@ async function main() { } for (const polyfill of polyfills) { + const module = coreJsVersion === 2 ? polyfill.coreJs2Module : polyfill.coreJs3Module; await createVariant({ group: `core-js-${coreJsVersion}-only-polyfill`, - name: polyfill, - code: `require("core-js/modules/${polyfill}")`, + name: module, + code: makeRequireCodeForPolyfill(module), }); } + + const allPolyfillCode = polyfills.map(polyfill => { + const module = coreJsVersion === 2 ? polyfill.coreJs2Module : polyfill.coreJs3Module; + return makeRequireCodeForPolyfill(module); + }).join('\n'); + await createVariant({ + group: 'all-legacy-polyfills', + name: `all-legacy-polyfills-core-js-${coreJsVersion}`, + code: allPolyfillCode, + }); } removeCoreJs(); @@ -269,15 +289,19 @@ async function main() { // Summary of using source maps and pattern matching. summary = makeSummary('legacy-javascript.json'); fs.writeFileSync(`${__dirname}/summary-signals.json`, JSON.stringify(summary, null, 2)); - console.log({ - totalSignals: summary.totalSignals, - variantsMissingSignals: summary.variantsMissingSignals, - }); - console.table(summary.variants); // Summary of using only pattern matching. summary = makeSummary('legacy-javascript-nomaps.json'); fs.writeFileSync(`${__dirname}/summary-signals-nomaps.json`, JSON.stringify(summary, null, 2)); + console.log({ + totalSignals: summary.totalSignals, + variantsMissingSignals: summary.variantsMissingSignals, + }); + console.table(summary.variants.filter(variant => { + // Too many signals, break layout. + if (variant.name.includes('all-legacy-polyfills')) return false; + return true; + })); createSummarySizes(); } diff --git a/lighthouse-core/scripts/legacy-javascript/summary-signals-nomaps.json b/lighthouse-core/scripts/legacy-javascript/summary-signals-nomaps.json index 80c99eb6bb6e..ac3d6c1f2e2a 100644 --- a/lighthouse-core/scripts/legacy-javascript/summary-signals-nomaps.json +++ b/lighthouse-core/scripts/legacy-javascript/summary-signals-nomaps.json @@ -1,5 +1,5 @@ { - "totalSignals": 205, + "totalSignals": 448, "variantsMissingSignals": [ "core-js-2-only-polyfill/es6-array-filter", "core-js-2-only-polyfill/es6-array-map", @@ -21,28 +21,18 @@ "core-js-2-only-polyfill/es6-reflect-define-property", "core-js-2-only-polyfill/es6-string-trim", "core-js-2-preset-env-esmodules/true", - "core-js-3-only-polyfill/es6-array-filter", - "core-js-3-only-polyfill/es6-array-map", - "core-js-3-only-polyfill/es6-array-reduce", - "core-js-3-only-polyfill/es6-array-reduce-right", - "core-js-3-only-polyfill/es6-array-some", - "core-js-3-only-polyfill/es6-date-to-string", - "core-js-3-only-polyfill/es6-function-name", - "core-js-3-only-polyfill/es6-object-freeze", - "core-js-3-only-polyfill/es6-object-get-own-property-descriptor", - "core-js-3-only-polyfill/es6-object-get-own-property-names", - "core-js-3-only-polyfill/es6-object-get-prototype-of", - "core-js-3-only-polyfill/es6-object-is-extensible", - "core-js-3-only-polyfill/es6-object-is-frozen", - "core-js-3-only-polyfill/es6-object-is-sealed", - "core-js-3-only-polyfill/es6-object-keys", - "core-js-3-only-polyfill/es6-object-prevent-extensions", - "core-js-3-only-polyfill/es6-object-seal", - "core-js-3-only-polyfill/es6-reflect-define-property", - "core-js-3-only-polyfill/es6-string-trim", + "core-js-3-only-polyfill/es-function-name", "core-js-3-preset-env-esmodules/true" ], "variants": [ + { + "name": "all-legacy-polyfills/all-legacy-polyfills-core-js-2", + "signals": "Promise, Uint8Array, Object.getOwnPropertyDescriptor, ArrayBuffer, DataView, Array.prototype.fill, Array.prototype.findIndex, Array.prototype.find, Array.prototype.forEach, Array.from, Array.isArray, Array.prototype.lastIndexOf, Array.of, Date.now, Date.prototype.toISOString, Date.prototype.toJSON, Map, Number.isInteger, Number.isSafeInteger, Number.parseFloat, Number.parseInt, Object.assign, Object.create, Object.defineProperties, Object.defineProperty, Object.setPrototypeOf, Reflect.apply, Reflect.construct, Reflect.deleteProperty, Reflect.getOwnPropertyDescriptor, Reflect.getPrototypeOf, Reflect.get, Reflect.has, Reflect.isExtensible, Reflect.ownKeys, Reflect.preventExtensions, Reflect.setPrototypeOf, Reflect.set, Set, String.prototype.codePointAt, String.prototype.endsWith, String.fromCodePoint, String.prototype.includes, String.raw, String.prototype.repeat, String.prototype.startsWith, Float32Array, Float64Array, Int16Array, Int32Array, Int8Array, Uint16Array, Uint32Array, Uint8ClampedArray, WeakMap, WeakSet, Array.prototype.includes, Object.entries, Object.getOwnPropertyDescriptors, Object.values, String.prototype.padEnd, String.prototype.padStart" + }, + { + "name": "all-legacy-polyfills/all-legacy-polyfills-core-js-3", + "signals": "Int8Array, Uint8ClampedArray, ArrayBuffer, DataView, WeakMap, Promise, Object.getOwnPropertyDescriptor, Array.prototype.fill, Array.prototype.filter, Array.prototype.findIndex, Array.prototype.find, Array.prototype.forEach, Array.from, Array.prototype.includes, Array.isArray, Array.prototype.lastIndexOf, Array.prototype.map, Array.of, Array.prototype.reduceRight, Array.prototype.reduce, Array.prototype.some, Date.now, Date.prototype.toISOString, Date.prototype.toJSON, Map, Number.isInteger, Number.isSafeInteger, Number.parseFloat, Number.parseInt, Object.assign, Object.create, Object.defineProperties, Object.defineProperty, Object.entries, Object.freeze, Object.getOwnPropertyDescriptors, Object.getOwnPropertyNames, Object.getPrototypeOf, Object.isExtensible, Object.isFrozen, Object.isSealed, Object.keys, Object.preventExtensions, Object.seal, Object.setPrototypeOf, Object.values, Reflect.apply, Reflect.construct, Reflect.defineProperty, Reflect.deleteProperty, Reflect.getOwnPropertyDescriptor, Reflect.getPrototypeOf, Reflect.get, Reflect.has, Reflect.isExtensible, Reflect.ownKeys, Reflect.preventExtensions, Reflect.setPrototypeOf, Reflect.set, Set, String.prototype.codePointAt, String.prototype.endsWith, String.fromCodePoint, String.prototype.includes, String.prototype.padEnd, String.prototype.padStart, String.raw, String.prototype.repeat, String.prototype.startsWith, String.prototype.trim, Float32Array, Float64Array, Int16Array, Int32Array, Uint16Array, Uint32Array, Uint8Array, WeakSet" + }, { "name": "core-js-2-only-polyfill/es6-array-fill", "signals": "Array.prototype.fill" @@ -372,324 +362,324 @@ "signals": "" }, { - "name": "core-js-3-only-polyfill/es6-array-fill", - "signals": "Array.prototype.fill" + "name": "core-js-3-only-polyfill/es-array-buffer-constructor", + "signals": "ArrayBuffer, DataView, WeakMap" }, { - "name": "core-js-3-only-polyfill/es6-array-filter", - "signals": "" + "name": "core-js-3-only-polyfill/es-array-fill", + "signals": "WeakMap, Array.prototype.fill" }, { - "name": "core-js-3-only-polyfill/es6-array-find", - "signals": "Array.prototype.find" + "name": "core-js-3-only-polyfill/es-array-filter", + "signals": "WeakMap, Array.prototype.filter" }, { - "name": "core-js-3-only-polyfill/es6-array-find-index", - "signals": "Array.prototype.findIndex" + "name": "core-js-3-only-polyfill/es-array-find", + "signals": "WeakMap, Array.prototype.find" }, { - "name": "core-js-3-only-polyfill/es6-array-for-each", - "signals": "Array.prototype.forEach" + "name": "core-js-3-only-polyfill/es-array-find-index", + "signals": "WeakMap, Array.prototype.findIndex" }, { - "name": "core-js-3-only-polyfill/es6-array-from", - "signals": "Array.from" + "name": "core-js-3-only-polyfill/es-array-for-each", + "signals": "WeakMap, Array.prototype.forEach" }, { - "name": "core-js-3-only-polyfill/es6-array-is-array", - "signals": "Array.isArray" + "name": "core-js-3-only-polyfill/es-array-from", + "signals": "WeakMap, Array.from" }, { - "name": "core-js-3-only-polyfill/es6-array-last-index-of", - "signals": "Array.prototype.lastIndexOf" + "name": "core-js-3-only-polyfill/es-array-includes", + "signals": "WeakMap, Array.prototype.includes" }, { - "name": "core-js-3-only-polyfill/es6-array-map", - "signals": "" + "name": "core-js-3-only-polyfill/es-array-is-array", + "signals": "WeakMap, Array.isArray" }, { - "name": "core-js-3-only-polyfill/es6-array-of", - "signals": "Array.of" + "name": "core-js-3-only-polyfill/es-array-last-index-of", + "signals": "WeakMap, Array.prototype.lastIndexOf" }, { - "name": "core-js-3-only-polyfill/es6-array-reduce", - "signals": "" + "name": "core-js-3-only-polyfill/es-array-map", + "signals": "WeakMap, Array.prototype.map" }, { - "name": "core-js-3-only-polyfill/es6-array-reduce-right", - "signals": "" + "name": "core-js-3-only-polyfill/es-array-of", + "signals": "WeakMap, Array.of" }, { - "name": "core-js-3-only-polyfill/es6-array-some", - "signals": "" + "name": "core-js-3-only-polyfill/es-array-reduce", + "signals": "WeakMap, Array.prototype.reduce" }, { - "name": "core-js-3-only-polyfill/es6-date-now", - "signals": "Date.now" + "name": "core-js-3-only-polyfill/es-array-reduce-right", + "signals": "WeakMap, Array.prototype.reduceRight" }, { - "name": "core-js-3-only-polyfill/es6-date-to-iso-string", - "signals": "Date.prototype.toISOString" + "name": "core-js-3-only-polyfill/es-array-some", + "signals": "WeakMap, Array.prototype.some" }, { - "name": "core-js-3-only-polyfill/es6-date-to-json", - "signals": "Date.prototype.toJSON" + "name": "core-js-3-only-polyfill/es-data-view", + "signals": "ArrayBuffer, DataView, WeakMap" }, { - "name": "core-js-3-only-polyfill/es6-date-to-string", - "signals": "" + "name": "core-js-3-only-polyfill/es-date-now", + "signals": "WeakMap, Date.now" }, { - "name": "core-js-3-only-polyfill/es6-function-name", - "signals": "" + "name": "core-js-3-only-polyfill/es-date-to-iso-string", + "signals": "WeakMap, Date.prototype.toISOString" }, { - "name": "core-js-3-only-polyfill/es6-map", - "signals": "Map" + "name": "core-js-3-only-polyfill/es-date-to-json", + "signals": "WeakMap, Date.prototype.toJSON" }, { - "name": "core-js-3-only-polyfill/es6-number-is-integer", - "signals": "Number.isInteger" + "name": "core-js-3-only-polyfill/es-date-to-string", + "signals": "WeakMap" }, { - "name": "core-js-3-only-polyfill/es6-number-is-safe-integer", - "signals": "Number.isSafeInteger" + "name": "core-js-3-only-polyfill/es-function-name", + "signals": "" }, { - "name": "core-js-3-only-polyfill/es6-number-parse-float", - "signals": "Number.parseFloat" + "name": "core-js-3-only-polyfill/es-map", + "signals": "WeakMap, Map" }, { - "name": "core-js-3-only-polyfill/es6-number-parse-int", - "signals": "Number.parseInt" + "name": "core-js-3-only-polyfill/es-number-is-integer", + "signals": "WeakMap, Number.isInteger" }, { - "name": "core-js-3-only-polyfill/es6-object-assign", - "signals": "Object.assign" + "name": "core-js-3-only-polyfill/es-number-is-safe-integer", + "signals": "WeakMap, Number.isSafeInteger" }, { - "name": "core-js-3-only-polyfill/es6-object-create", - "signals": "Object.create" + "name": "core-js-3-only-polyfill/es-number-parse-float", + "signals": "WeakMap, Number.parseFloat" }, { - "name": "core-js-3-only-polyfill/es6-object-define-properties", - "signals": "Object.defineProperties" + "name": "core-js-3-only-polyfill/es-number-parse-int", + "signals": "WeakMap, Number.parseInt" }, { - "name": "core-js-3-only-polyfill/es6-object-define-property", - "signals": "Object.defineProperty" + "name": "core-js-3-only-polyfill/es-object-assign", + "signals": "WeakMap, Object.assign" }, { - "name": "core-js-3-only-polyfill/es6-object-freeze", - "signals": "" + "name": "core-js-3-only-polyfill/es-object-create", + "signals": "WeakMap, Object.create" }, { - "name": "core-js-3-only-polyfill/es6-object-get-own-property-descriptor", - "signals": "" + "name": "core-js-3-only-polyfill/es-object-define-properties", + "signals": "WeakMap, Object.defineProperties" }, { - "name": "core-js-3-only-polyfill/es6-object-get-own-property-names", - "signals": "" + "name": "core-js-3-only-polyfill/es-object-define-property", + "signals": "WeakMap, Object.defineProperty" }, { - "name": "core-js-3-only-polyfill/es6-object-get-prototype-of", - "signals": "" + "name": "core-js-3-only-polyfill/es-object-entries", + "signals": "WeakMap, Object.entries" }, { - "name": "core-js-3-only-polyfill/es6-object-is-extensible", - "signals": "" + "name": "core-js-3-only-polyfill/es-object-freeze", + "signals": "WeakMap, Object.freeze" }, { - "name": "core-js-3-only-polyfill/es6-object-is-frozen", - "signals": "" + "name": "core-js-3-only-polyfill/es-object-get-own-property-descriptor", + "signals": "WeakMap, Object.getOwnPropertyDescriptor" }, { - "name": "core-js-3-only-polyfill/es6-object-is-sealed", - "signals": "" + "name": "core-js-3-only-polyfill/es-object-get-own-property-descriptors", + "signals": "WeakMap, Object.getOwnPropertyDescriptors" }, { - "name": "core-js-3-only-polyfill/es6-object-keys", - "signals": "" + "name": "core-js-3-only-polyfill/es-object-get-own-property-names", + "signals": "WeakMap, Object.getOwnPropertyNames" }, { - "name": "core-js-3-only-polyfill/es6-object-prevent-extensions", - "signals": "" + "name": "core-js-3-only-polyfill/es-object-get-prototype-of", + "signals": "WeakMap, Object.getPrototypeOf" }, { - "name": "core-js-3-only-polyfill/es6-object-seal", - "signals": "" + "name": "core-js-3-only-polyfill/es-object-is-extensible", + "signals": "WeakMap, Object.isExtensible" }, { - "name": "core-js-3-only-polyfill/es6-object-set-prototype-of", - "signals": "Object.setPrototypeOf" + "name": "core-js-3-only-polyfill/es-object-is-frozen", + "signals": "WeakMap, Object.isFrozen" }, { - "name": "core-js-3-only-polyfill/es6-promise", - "signals": "Promise" + "name": "core-js-3-only-polyfill/es-object-is-sealed", + "signals": "WeakMap, Object.isSealed" }, { - "name": "core-js-3-only-polyfill/es6-reflect-apply", - "signals": "Reflect.apply" + "name": "core-js-3-only-polyfill/es-object-keys", + "signals": "WeakMap, Object.keys" }, { - "name": "core-js-3-only-polyfill/es6-reflect-construct", - "signals": "Reflect.construct" + "name": "core-js-3-only-polyfill/es-object-prevent-extensions", + "signals": "WeakMap, Object.preventExtensions" }, { - "name": "core-js-3-only-polyfill/es6-reflect-define-property", - "signals": "" + "name": "core-js-3-only-polyfill/es-object-seal", + "signals": "WeakMap, Object.seal" }, { - "name": "core-js-3-only-polyfill/es6-reflect-delete-property", - "signals": "Reflect.deleteProperty" + "name": "core-js-3-only-polyfill/es-object-set-prototype-of", + "signals": "WeakMap, Object.setPrototypeOf" }, { - "name": "core-js-3-only-polyfill/es6-reflect-get", - "signals": "Reflect.get" + "name": "core-js-3-only-polyfill/es-object-values", + "signals": "WeakMap, Object.values" }, { - "name": "core-js-3-only-polyfill/es6-reflect-get-own-property-descriptor", - "signals": "Reflect.getOwnPropertyDescriptor" + "name": "core-js-3-only-polyfill/es-promise", + "signals": "WeakMap, Promise" }, { - "name": "core-js-3-only-polyfill/es6-reflect-get-prototype-of", - "signals": "Reflect.getPrototypeOf" + "name": "core-js-3-only-polyfill/es-reflect-apply", + "signals": "WeakMap, Reflect.apply" }, { - "name": "core-js-3-only-polyfill/es6-reflect-has", - "signals": "Reflect.has" + "name": "core-js-3-only-polyfill/es-reflect-construct", + "signals": "WeakMap, Reflect.construct" }, { - "name": "core-js-3-only-polyfill/es6-reflect-is-extensible", - "signals": "Reflect.isExtensible" + "name": "core-js-3-only-polyfill/es-reflect-define-property", + "signals": "WeakMap, Reflect.defineProperty" }, { - "name": "core-js-3-only-polyfill/es6-reflect-own-keys", - "signals": "Reflect.ownKeys" + "name": "core-js-3-only-polyfill/es-reflect-delete-property", + "signals": "WeakMap, Reflect.deleteProperty" }, { - "name": "core-js-3-only-polyfill/es6-reflect-prevent-extensions", - "signals": "Reflect.preventExtensions" + "name": "core-js-3-only-polyfill/es-reflect-get", + "signals": "WeakMap, Reflect.get" }, { - "name": "core-js-3-only-polyfill/es6-reflect-set", - "signals": "Reflect.set" + "name": "core-js-3-only-polyfill/es-reflect-get-own-property-descriptor", + "signals": "WeakMap, Reflect.getOwnPropertyDescriptor" }, { - "name": "core-js-3-only-polyfill/es6-reflect-set-prototype-of", - "signals": "Reflect.setPrototypeOf" + "name": "core-js-3-only-polyfill/es-reflect-get-prototype-of", + "signals": "WeakMap, Reflect.getPrototypeOf" }, { - "name": "core-js-3-only-polyfill/es6-set", - "signals": "Set" + "name": "core-js-3-only-polyfill/es-reflect-has", + "signals": "WeakMap, Reflect.has" }, { - "name": "core-js-3-only-polyfill/es6-string-code-point-at", - "signals": "String.prototype.codePointAt" + "name": "core-js-3-only-polyfill/es-reflect-is-extensible", + "signals": "WeakMap, Reflect.isExtensible" }, { - "name": "core-js-3-only-polyfill/es6-string-ends-with", - "signals": "String.prototype.endsWith" + "name": "core-js-3-only-polyfill/es-reflect-own-keys", + "signals": "WeakMap, Reflect.ownKeys" }, { - "name": "core-js-3-only-polyfill/es6-string-from-code-point", - "signals": "String.fromCodePoint" + "name": "core-js-3-only-polyfill/es-reflect-prevent-extensions", + "signals": "WeakMap, Reflect.preventExtensions" }, { - "name": "core-js-3-only-polyfill/es6-string-includes", - "signals": "String.prototype.includes" + "name": "core-js-3-only-polyfill/es-reflect-set", + "signals": "WeakMap, Reflect.set" }, { - "name": "core-js-3-only-polyfill/es6-string-raw", - "signals": "String.raw" + "name": "core-js-3-only-polyfill/es-reflect-set-prototype-of", + "signals": "WeakMap, Reflect.setPrototypeOf" }, { - "name": "core-js-3-only-polyfill/es6-string-repeat", - "signals": "String.prototype.repeat" + "name": "core-js-3-only-polyfill/es-set", + "signals": "WeakMap, Set" }, { - "name": "core-js-3-only-polyfill/es6-string-starts-with", - "signals": "String.prototype.startsWith" + "name": "core-js-3-only-polyfill/es-string-code-point-at", + "signals": "WeakMap, String.prototype.codePointAt" }, { - "name": "core-js-3-only-polyfill/es6-string-trim", - "signals": "" + "name": "core-js-3-only-polyfill/es-string-ends-with", + "signals": "WeakMap, String.prototype.endsWith" }, { - "name": "core-js-3-only-polyfill/es6-typed-array-buffer", - "signals": "ArrayBuffer, DataView" + "name": "core-js-3-only-polyfill/es-string-from-code-point", + "signals": "WeakMap, String.fromCodePoint" }, { - "name": "core-js-3-only-polyfill/es6-typed-data-view", - "signals": "ArrayBuffer, DataView" + "name": "core-js-3-only-polyfill/es-string-includes", + "signals": "WeakMap, String.prototype.includes" }, { - "name": "core-js-3-only-polyfill/es6-typed-float32-array", - "signals": "Uint8Array, Object.getOwnPropertyDescriptor, ArrayBuffer, DataView, Float32Array" + "name": "core-js-3-only-polyfill/es-string-pad-end", + "signals": "WeakMap, String.prototype.padEnd" }, { - "name": "core-js-3-only-polyfill/es6-typed-float64-array", - "signals": "Uint8Array, Object.getOwnPropertyDescriptor, ArrayBuffer, DataView, Float64Array" + "name": "core-js-3-only-polyfill/es-string-pad-start", + "signals": "WeakMap, String.prototype.padStart" }, { - "name": "core-js-3-only-polyfill/es6-typed-int16-array", - "signals": "Uint8Array, Object.getOwnPropertyDescriptor, ArrayBuffer, DataView, Int16Array" + "name": "core-js-3-only-polyfill/es-string-raw", + "signals": "WeakMap, String.raw" }, { - "name": "core-js-3-only-polyfill/es6-typed-int32-array", - "signals": "Uint8Array, Object.getOwnPropertyDescriptor, ArrayBuffer, DataView, Int32Array" + "name": "core-js-3-only-polyfill/es-string-repeat", + "signals": "WeakMap, String.prototype.repeat" }, { - "name": "core-js-3-only-polyfill/es6-typed-int8-array", - "signals": "Uint8Array, Object.getOwnPropertyDescriptor, ArrayBuffer, DataView, Int8Array" + "name": "core-js-3-only-polyfill/es-string-starts-with", + "signals": "WeakMap, String.prototype.startsWith" }, { - "name": "core-js-3-only-polyfill/es6-typed-uint16-array", - "signals": "Uint8Array, Object.getOwnPropertyDescriptor, ArrayBuffer, DataView, Uint16Array" + "name": "core-js-3-only-polyfill/es-string-trim", + "signals": "WeakMap, String.prototype.trim" }, { - "name": "core-js-3-only-polyfill/es6-typed-uint32-array", - "signals": "Uint8Array, Object.getOwnPropertyDescriptor, ArrayBuffer, DataView, Uint32Array" + "name": "core-js-3-only-polyfill/es-typed-array-float32-array", + "signals": "Int8Array, Uint8ClampedArray, ArrayBuffer, DataView, WeakMap, Object.getOwnPropertyDescriptor, Float32Array" }, { - "name": "core-js-3-only-polyfill/es6-typed-uint8-array", - "signals": "Uint8Array, Object.getOwnPropertyDescriptor, ArrayBuffer, DataView" + "name": "core-js-3-only-polyfill/es-typed-array-float64-array", + "signals": "Int8Array, Uint8ClampedArray, ArrayBuffer, DataView, WeakMap, Object.getOwnPropertyDescriptor, Float64Array" }, { - "name": "core-js-3-only-polyfill/es6-typed-uint8-clamped-array", - "signals": "Uint8Array, Object.getOwnPropertyDescriptor, ArrayBuffer, DataView, Uint8ClampedArray" + "name": "core-js-3-only-polyfill/es-typed-array-int16-array", + "signals": "Int8Array, Uint8ClampedArray, ArrayBuffer, DataView, WeakMap, Object.getOwnPropertyDescriptor, Int16Array" }, { - "name": "core-js-3-only-polyfill/es6-weak-map", - "signals": "WeakMap" + "name": "core-js-3-only-polyfill/es-typed-array-int32-array", + "signals": "Int8Array, Uint8ClampedArray, ArrayBuffer, DataView, WeakMap, Object.getOwnPropertyDescriptor, Int32Array" }, { - "name": "core-js-3-only-polyfill/es6-weak-set", - "signals": "WeakSet" + "name": "core-js-3-only-polyfill/es-typed-array-int8-array", + "signals": "Int8Array, Uint8ClampedArray, ArrayBuffer, DataView, WeakMap, Object.getOwnPropertyDescriptor" }, { - "name": "core-js-3-only-polyfill/es7-array-includes", - "signals": "Array.prototype.includes" + "name": "core-js-3-only-polyfill/es-typed-array-uint16-array", + "signals": "Int8Array, Uint8ClampedArray, ArrayBuffer, DataView, WeakMap, Object.getOwnPropertyDescriptor, Uint16Array" }, { - "name": "core-js-3-only-polyfill/es7-object-entries", - "signals": "Object.entries" + "name": "core-js-3-only-polyfill/es-typed-array-uint32-array", + "signals": "Int8Array, Uint8ClampedArray, ArrayBuffer, DataView, WeakMap, Object.getOwnPropertyDescriptor, Uint32Array" }, { - "name": "core-js-3-only-polyfill/es7-object-get-own-property-descriptors", - "signals": "Object.getOwnPropertyDescriptors" + "name": "core-js-3-only-polyfill/es-typed-array-uint8-array", + "signals": "Int8Array, Uint8ClampedArray, ArrayBuffer, DataView, WeakMap, Object.getOwnPropertyDescriptor, Uint8Array" }, { - "name": "core-js-3-only-polyfill/es7-object-values", - "signals": "Object.values" + "name": "core-js-3-only-polyfill/es-typed-array-uint8-clamped-array", + "signals": "Int8Array, Uint8ClampedArray, ArrayBuffer, DataView, WeakMap, Object.getOwnPropertyDescriptor" }, { - "name": "core-js-3-only-polyfill/es7-string-pad-end", - "signals": "String.prototype.padEnd" + "name": "core-js-3-only-polyfill/es-weak-map", + "signals": "WeakMap" }, { - "name": "core-js-3-only-polyfill/es7-string-pad-start", - "signals": "String.prototype.padStart" + "name": "core-js-3-only-polyfill/es-weak-set", + "signals": "WeakMap, WeakSet" }, { "name": "core-js-3-preset-env-esmodules/false", diff --git a/lighthouse-core/scripts/legacy-javascript/summary-signals.json b/lighthouse-core/scripts/legacy-javascript/summary-signals.json index af3a7b838758..cbffd85bfae7 100644 --- a/lighthouse-core/scripts/legacy-javascript/summary-signals.json +++ b/lighthouse-core/scripts/legacy-javascript/summary-signals.json @@ -1,10 +1,18 @@ { - "totalSignals": 243, + "totalSignals": 489, "variantsMissingSignals": [ "core-js-2-preset-env-esmodules/true", "core-js-3-preset-env-esmodules/true" ], "variants": [ + { + "name": "all-legacy-polyfills/all-legacy-polyfills-core-js-2", + "signals": "Promise, Uint8Array, Object.getOwnPropertyDescriptor, ArrayBuffer, DataView, Array.prototype.fill, Array.prototype.findIndex, Array.prototype.find, Array.prototype.forEach, Array.from, Array.isArray, Array.prototype.lastIndexOf, Array.of, Date.now, Date.prototype.toISOString, Date.prototype.toJSON, Map, Number.isInteger, Number.isSafeInteger, Number.parseFloat, Number.parseInt, Object.assign, Object.create, Object.defineProperties, Object.defineProperty, Object.setPrototypeOf, Reflect.apply, Reflect.construct, Reflect.deleteProperty, Reflect.getOwnPropertyDescriptor, Reflect.getPrototypeOf, Reflect.get, Reflect.has, Reflect.isExtensible, Reflect.ownKeys, Reflect.preventExtensions, Reflect.setPrototypeOf, Reflect.set, Set, String.prototype.codePointAt, String.prototype.endsWith, String.fromCodePoint, String.prototype.includes, String.raw, String.prototype.repeat, String.prototype.startsWith, Float32Array, Float64Array, Int16Array, Int32Array, Int8Array, Uint16Array, Uint32Array, Uint8ClampedArray, WeakMap, WeakSet, Array.prototype.includes, Object.entries, Object.getOwnPropertyDescriptors, Object.values, String.prototype.padEnd, String.prototype.padStart, Array.prototype.filter, Array.prototype.map, Array.prototype.reduce, Array.prototype.reduceRight, Array.prototype.some, Date.prototype.toString, Function.prototype.name, Object.freeze, Object.getOwnPropertyNames, Object.getPrototypeOf, Object.isExtensible, Object.isFrozen, Object.isSealed, Object.keys, Object.preventExtensions, Object.seal, Reflect.defineProperty, String.prototype.trim" + }, + { + "name": "all-legacy-polyfills/all-legacy-polyfills-core-js-3", + "signals": "Int8Array, Uint8ClampedArray, ArrayBuffer, DataView, WeakMap, Promise, Object.getOwnPropertyDescriptor, Array.prototype.fill, Array.prototype.filter, Array.prototype.findIndex, Array.prototype.find, Array.prototype.forEach, Array.from, Array.prototype.includes, Array.isArray, Array.prototype.lastIndexOf, Array.prototype.map, Array.of, Array.prototype.reduceRight, Array.prototype.reduce, Array.prototype.some, Date.now, Date.prototype.toISOString, Date.prototype.toJSON, Map, Number.isInteger, Number.isSafeInteger, Number.parseFloat, Number.parseInt, Object.assign, Object.create, Object.defineProperties, Object.defineProperty, Object.entries, Object.freeze, Object.getOwnPropertyDescriptors, Object.getOwnPropertyNames, Object.getPrototypeOf, Object.isExtensible, Object.isFrozen, Object.isSealed, Object.keys, Object.preventExtensions, Object.seal, Object.setPrototypeOf, Object.values, Reflect.apply, Reflect.construct, Reflect.defineProperty, Reflect.deleteProperty, Reflect.getOwnPropertyDescriptor, Reflect.getPrototypeOf, Reflect.get, Reflect.has, Reflect.isExtensible, Reflect.ownKeys, Reflect.preventExtensions, Reflect.setPrototypeOf, Reflect.set, Set, String.prototype.codePointAt, String.prototype.endsWith, String.fromCodePoint, String.prototype.includes, String.prototype.padEnd, String.prototype.padStart, String.raw, String.prototype.repeat, String.prototype.startsWith, String.prototype.trim, Float32Array, Float64Array, Int16Array, Int32Array, Uint16Array, Uint32Array, Uint8Array, WeakSet, Date.prototype.toString, Function.prototype.name" + }, { "name": "core-js-2-only-polyfill/es6-array-fill", "signals": "Array.prototype.fill" @@ -334,324 +342,324 @@ "signals": "" }, { - "name": "core-js-3-only-polyfill/es6-array-fill", - "signals": "Array.prototype.fill" + "name": "core-js-3-only-polyfill/es-array-buffer-constructor", + "signals": "ArrayBuffer, DataView, WeakMap" }, { - "name": "core-js-3-only-polyfill/es6-array-filter", - "signals": "Array.prototype.filter" + "name": "core-js-3-only-polyfill/es-array-fill", + "signals": "WeakMap, Array.prototype.fill" }, { - "name": "core-js-3-only-polyfill/es6-array-find", - "signals": "Array.prototype.find" + "name": "core-js-3-only-polyfill/es-array-filter", + "signals": "WeakMap, Array.prototype.filter" }, { - "name": "core-js-3-only-polyfill/es6-array-find-index", - "signals": "Array.prototype.findIndex" + "name": "core-js-3-only-polyfill/es-array-find", + "signals": "WeakMap, Array.prototype.find" }, { - "name": "core-js-3-only-polyfill/es6-array-for-each", - "signals": "Array.prototype.forEach" + "name": "core-js-3-only-polyfill/es-array-find-index", + "signals": "WeakMap, Array.prototype.findIndex" }, { - "name": "core-js-3-only-polyfill/es6-array-from", - "signals": "Array.from" + "name": "core-js-3-only-polyfill/es-array-for-each", + "signals": "WeakMap, Array.prototype.forEach" }, { - "name": "core-js-3-only-polyfill/es6-array-is-array", - "signals": "Array.isArray" + "name": "core-js-3-only-polyfill/es-array-from", + "signals": "WeakMap, Array.from" }, { - "name": "core-js-3-only-polyfill/es6-array-last-index-of", - "signals": "Array.prototype.lastIndexOf" + "name": "core-js-3-only-polyfill/es-array-includes", + "signals": "WeakMap, Array.prototype.includes" }, { - "name": "core-js-3-only-polyfill/es6-array-map", - "signals": "Array.prototype.map" + "name": "core-js-3-only-polyfill/es-array-is-array", + "signals": "WeakMap, Array.isArray" }, { - "name": "core-js-3-only-polyfill/es6-array-of", - "signals": "Array.of" + "name": "core-js-3-only-polyfill/es-array-last-index-of", + "signals": "WeakMap, Array.prototype.lastIndexOf" }, { - "name": "core-js-3-only-polyfill/es6-array-reduce", - "signals": "Array.prototype.reduce" + "name": "core-js-3-only-polyfill/es-array-map", + "signals": "WeakMap, Array.prototype.map" }, { - "name": "core-js-3-only-polyfill/es6-array-reduce-right", - "signals": "Array.prototype.reduceRight" + "name": "core-js-3-only-polyfill/es-array-of", + "signals": "WeakMap, Array.of" }, { - "name": "core-js-3-only-polyfill/es6-array-some", - "signals": "Array.prototype.some" + "name": "core-js-3-only-polyfill/es-array-reduce", + "signals": "WeakMap, Array.prototype.reduce" }, { - "name": "core-js-3-only-polyfill/es6-date-now", - "signals": "Date.now" + "name": "core-js-3-only-polyfill/es-array-reduce-right", + "signals": "WeakMap, Array.prototype.reduceRight" }, { - "name": "core-js-3-only-polyfill/es6-date-to-iso-string", - "signals": "Date.prototype.toISOString" + "name": "core-js-3-only-polyfill/es-array-some", + "signals": "WeakMap, Array.prototype.some" }, { - "name": "core-js-3-only-polyfill/es6-date-to-json", - "signals": "Date.prototype.toJSON" + "name": "core-js-3-only-polyfill/es-data-view", + "signals": "ArrayBuffer, DataView, WeakMap" }, { - "name": "core-js-3-only-polyfill/es6-date-to-string", - "signals": "Date.prototype.toString" + "name": "core-js-3-only-polyfill/es-date-now", + "signals": "WeakMap, Date.now" }, { - "name": "core-js-3-only-polyfill/es6-function-name", - "signals": "Function.prototype.name" + "name": "core-js-3-only-polyfill/es-date-to-iso-string", + "signals": "WeakMap, Date.prototype.toISOString" }, { - "name": "core-js-3-only-polyfill/es6-map", - "signals": "Map" + "name": "core-js-3-only-polyfill/es-date-to-json", + "signals": "WeakMap, Date.prototype.toJSON" }, { - "name": "core-js-3-only-polyfill/es6-number-is-integer", - "signals": "Number.isInteger" + "name": "core-js-3-only-polyfill/es-date-to-string", + "signals": "WeakMap, Date.prototype.toString" }, { - "name": "core-js-3-only-polyfill/es6-number-is-safe-integer", - "signals": "Number.isSafeInteger" + "name": "core-js-3-only-polyfill/es-function-name", + "signals": "Function.prototype.name" }, { - "name": "core-js-3-only-polyfill/es6-number-parse-float", - "signals": "Number.parseFloat" + "name": "core-js-3-only-polyfill/es-map", + "signals": "WeakMap, Map" }, { - "name": "core-js-3-only-polyfill/es6-number-parse-int", - "signals": "Number.parseInt" + "name": "core-js-3-only-polyfill/es-number-is-integer", + "signals": "WeakMap, Number.isInteger" }, { - "name": "core-js-3-only-polyfill/es6-object-assign", - "signals": "Object.assign" + "name": "core-js-3-only-polyfill/es-number-is-safe-integer", + "signals": "WeakMap, Number.isSafeInteger" }, { - "name": "core-js-3-only-polyfill/es6-object-create", - "signals": "Object.create" + "name": "core-js-3-only-polyfill/es-number-parse-float", + "signals": "WeakMap, Number.parseFloat" }, { - "name": "core-js-3-only-polyfill/es6-object-define-properties", - "signals": "Object.defineProperties" + "name": "core-js-3-only-polyfill/es-number-parse-int", + "signals": "WeakMap, Number.parseInt" }, { - "name": "core-js-3-only-polyfill/es6-object-define-property", - "signals": "Object.defineProperty" + "name": "core-js-3-only-polyfill/es-object-assign", + "signals": "WeakMap, Object.assign" }, { - "name": "core-js-3-only-polyfill/es6-object-freeze", - "signals": "Object.freeze" + "name": "core-js-3-only-polyfill/es-object-create", + "signals": "WeakMap, Object.create" }, { - "name": "core-js-3-only-polyfill/es6-object-get-own-property-descriptor", - "signals": "Object.getOwnPropertyDescriptor" + "name": "core-js-3-only-polyfill/es-object-define-properties", + "signals": "WeakMap, Object.defineProperties" }, { - "name": "core-js-3-only-polyfill/es6-object-get-own-property-names", - "signals": "Object.getOwnPropertyNames" + "name": "core-js-3-only-polyfill/es-object-define-property", + "signals": "WeakMap, Object.defineProperty" }, { - "name": "core-js-3-only-polyfill/es6-object-get-prototype-of", - "signals": "Object.getPrototypeOf" + "name": "core-js-3-only-polyfill/es-object-entries", + "signals": "WeakMap, Object.entries" }, { - "name": "core-js-3-only-polyfill/es6-object-is-extensible", - "signals": "Object.isExtensible" + "name": "core-js-3-only-polyfill/es-object-freeze", + "signals": "WeakMap, Object.freeze" }, { - "name": "core-js-3-only-polyfill/es6-object-is-frozen", - "signals": "Object.isFrozen" + "name": "core-js-3-only-polyfill/es-object-get-own-property-descriptor", + "signals": "WeakMap, Object.getOwnPropertyDescriptor" }, { - "name": "core-js-3-only-polyfill/es6-object-is-sealed", - "signals": "Object.isSealed" + "name": "core-js-3-only-polyfill/es-object-get-own-property-descriptors", + "signals": "WeakMap, Object.getOwnPropertyDescriptors" }, { - "name": "core-js-3-only-polyfill/es6-object-keys", - "signals": "Object.keys" + "name": "core-js-3-only-polyfill/es-object-get-own-property-names", + "signals": "WeakMap, Object.getOwnPropertyNames" }, { - "name": "core-js-3-only-polyfill/es6-object-prevent-extensions", - "signals": "Object.preventExtensions" + "name": "core-js-3-only-polyfill/es-object-get-prototype-of", + "signals": "WeakMap, Object.getPrototypeOf" }, { - "name": "core-js-3-only-polyfill/es6-object-seal", - "signals": "Object.seal" + "name": "core-js-3-only-polyfill/es-object-is-extensible", + "signals": "WeakMap, Object.isExtensible" }, { - "name": "core-js-3-only-polyfill/es6-object-set-prototype-of", - "signals": "Object.setPrototypeOf" + "name": "core-js-3-only-polyfill/es-object-is-frozen", + "signals": "WeakMap, Object.isFrozen" }, { - "name": "core-js-3-only-polyfill/es6-promise", - "signals": "Promise" + "name": "core-js-3-only-polyfill/es-object-is-sealed", + "signals": "WeakMap, Object.isSealed" }, { - "name": "core-js-3-only-polyfill/es6-reflect-apply", - "signals": "Reflect.apply" + "name": "core-js-3-only-polyfill/es-object-keys", + "signals": "WeakMap, Object.keys" }, { - "name": "core-js-3-only-polyfill/es6-reflect-construct", - "signals": "Reflect.construct" + "name": "core-js-3-only-polyfill/es-object-prevent-extensions", + "signals": "WeakMap, Object.preventExtensions" }, { - "name": "core-js-3-only-polyfill/es6-reflect-define-property", - "signals": "Reflect.defineProperty" + "name": "core-js-3-only-polyfill/es-object-seal", + "signals": "WeakMap, Object.seal" }, { - "name": "core-js-3-only-polyfill/es6-reflect-delete-property", - "signals": "Reflect.deleteProperty" + "name": "core-js-3-only-polyfill/es-object-set-prototype-of", + "signals": "WeakMap, Object.setPrototypeOf" }, { - "name": "core-js-3-only-polyfill/es6-reflect-get", - "signals": "Reflect.get" + "name": "core-js-3-only-polyfill/es-object-values", + "signals": "WeakMap, Object.values" }, { - "name": "core-js-3-only-polyfill/es6-reflect-get-own-property-descriptor", - "signals": "Reflect.getOwnPropertyDescriptor" + "name": "core-js-3-only-polyfill/es-promise", + "signals": "WeakMap, Promise" }, { - "name": "core-js-3-only-polyfill/es6-reflect-get-prototype-of", - "signals": "Reflect.getPrototypeOf" + "name": "core-js-3-only-polyfill/es-reflect-apply", + "signals": "WeakMap, Reflect.apply" }, { - "name": "core-js-3-only-polyfill/es6-reflect-has", - "signals": "Reflect.has" + "name": "core-js-3-only-polyfill/es-reflect-construct", + "signals": "WeakMap, Reflect.construct" }, { - "name": "core-js-3-only-polyfill/es6-reflect-is-extensible", - "signals": "Reflect.isExtensible" + "name": "core-js-3-only-polyfill/es-reflect-define-property", + "signals": "WeakMap, Reflect.defineProperty" }, { - "name": "core-js-3-only-polyfill/es6-reflect-own-keys", - "signals": "Reflect.ownKeys" + "name": "core-js-3-only-polyfill/es-reflect-delete-property", + "signals": "WeakMap, Reflect.deleteProperty" }, { - "name": "core-js-3-only-polyfill/es6-reflect-prevent-extensions", - "signals": "Reflect.preventExtensions" + "name": "core-js-3-only-polyfill/es-reflect-get", + "signals": "WeakMap, Reflect.get" }, { - "name": "core-js-3-only-polyfill/es6-reflect-set", - "signals": "Reflect.set" + "name": "core-js-3-only-polyfill/es-reflect-get-own-property-descriptor", + "signals": "WeakMap, Reflect.getOwnPropertyDescriptor" }, { - "name": "core-js-3-only-polyfill/es6-reflect-set-prototype-of", - "signals": "Reflect.setPrototypeOf" + "name": "core-js-3-only-polyfill/es-reflect-get-prototype-of", + "signals": "WeakMap, Reflect.getPrototypeOf" }, { - "name": "core-js-3-only-polyfill/es6-set", - "signals": "Set" + "name": "core-js-3-only-polyfill/es-reflect-has", + "signals": "WeakMap, Reflect.has" }, { - "name": "core-js-3-only-polyfill/es6-string-code-point-at", - "signals": "String.prototype.codePointAt" + "name": "core-js-3-only-polyfill/es-reflect-is-extensible", + "signals": "WeakMap, Reflect.isExtensible" }, { - "name": "core-js-3-only-polyfill/es6-string-ends-with", - "signals": "String.prototype.endsWith" + "name": "core-js-3-only-polyfill/es-reflect-own-keys", + "signals": "WeakMap, Reflect.ownKeys" }, { - "name": "core-js-3-only-polyfill/es6-string-from-code-point", - "signals": "String.fromCodePoint" + "name": "core-js-3-only-polyfill/es-reflect-prevent-extensions", + "signals": "WeakMap, Reflect.preventExtensions" }, { - "name": "core-js-3-only-polyfill/es6-string-includes", - "signals": "String.prototype.includes" + "name": "core-js-3-only-polyfill/es-reflect-set", + "signals": "WeakMap, Reflect.set" }, { - "name": "core-js-3-only-polyfill/es6-string-raw", - "signals": "String.raw" + "name": "core-js-3-only-polyfill/es-reflect-set-prototype-of", + "signals": "WeakMap, Reflect.setPrototypeOf" }, { - "name": "core-js-3-only-polyfill/es6-string-repeat", - "signals": "String.prototype.repeat" + "name": "core-js-3-only-polyfill/es-set", + "signals": "WeakMap, Set" }, { - "name": "core-js-3-only-polyfill/es6-string-starts-with", - "signals": "String.prototype.startsWith" + "name": "core-js-3-only-polyfill/es-string-code-point-at", + "signals": "WeakMap, String.prototype.codePointAt" }, { - "name": "core-js-3-only-polyfill/es6-string-trim", - "signals": "String.prototype.trim" + "name": "core-js-3-only-polyfill/es-string-ends-with", + "signals": "WeakMap, String.prototype.endsWith" }, { - "name": "core-js-3-only-polyfill/es6-typed-array-buffer", - "signals": "ArrayBuffer, DataView" + "name": "core-js-3-only-polyfill/es-string-from-code-point", + "signals": "WeakMap, String.fromCodePoint" }, { - "name": "core-js-3-only-polyfill/es6-typed-data-view", - "signals": "ArrayBuffer, DataView" + "name": "core-js-3-only-polyfill/es-string-includes", + "signals": "WeakMap, String.prototype.includes" }, { - "name": "core-js-3-only-polyfill/es6-typed-float32-array", - "signals": "Uint8Array, Object.getOwnPropertyDescriptor, ArrayBuffer, DataView, Float32Array" + "name": "core-js-3-only-polyfill/es-string-pad-end", + "signals": "WeakMap, String.prototype.padEnd" }, { - "name": "core-js-3-only-polyfill/es6-typed-float64-array", - "signals": "Uint8Array, Object.getOwnPropertyDescriptor, ArrayBuffer, DataView, Float64Array" + "name": "core-js-3-only-polyfill/es-string-pad-start", + "signals": "WeakMap, String.prototype.padStart" }, { - "name": "core-js-3-only-polyfill/es6-typed-int16-array", - "signals": "Uint8Array, Object.getOwnPropertyDescriptor, ArrayBuffer, DataView, Int16Array" + "name": "core-js-3-only-polyfill/es-string-raw", + "signals": "WeakMap, String.raw" }, { - "name": "core-js-3-only-polyfill/es6-typed-int32-array", - "signals": "Uint8Array, Object.getOwnPropertyDescriptor, ArrayBuffer, DataView, Int32Array" + "name": "core-js-3-only-polyfill/es-string-repeat", + "signals": "WeakMap, String.prototype.repeat" }, { - "name": "core-js-3-only-polyfill/es6-typed-int8-array", - "signals": "Uint8Array, Object.getOwnPropertyDescriptor, ArrayBuffer, DataView, Int8Array" + "name": "core-js-3-only-polyfill/es-string-starts-with", + "signals": "WeakMap, String.prototype.startsWith" }, { - "name": "core-js-3-only-polyfill/es6-typed-uint16-array", - "signals": "Uint8Array, Object.getOwnPropertyDescriptor, ArrayBuffer, DataView, Uint16Array" + "name": "core-js-3-only-polyfill/es-string-trim", + "signals": "WeakMap, String.prototype.trim" }, { - "name": "core-js-3-only-polyfill/es6-typed-uint32-array", - "signals": "Uint8Array, Object.getOwnPropertyDescriptor, ArrayBuffer, DataView, Uint32Array" + "name": "core-js-3-only-polyfill/es-typed-array-float32-array", + "signals": "Int8Array, Uint8ClampedArray, ArrayBuffer, DataView, WeakMap, Object.getOwnPropertyDescriptor, Float32Array" }, { - "name": "core-js-3-only-polyfill/es6-typed-uint8-array", - "signals": "Uint8Array, Object.getOwnPropertyDescriptor, ArrayBuffer, DataView" + "name": "core-js-3-only-polyfill/es-typed-array-float64-array", + "signals": "Int8Array, Uint8ClampedArray, ArrayBuffer, DataView, WeakMap, Object.getOwnPropertyDescriptor, Float64Array" }, { - "name": "core-js-3-only-polyfill/es6-typed-uint8-clamped-array", - "signals": "Uint8Array, Object.getOwnPropertyDescriptor, ArrayBuffer, DataView, Uint8ClampedArray" + "name": "core-js-3-only-polyfill/es-typed-array-int16-array", + "signals": "Int8Array, Uint8ClampedArray, ArrayBuffer, DataView, WeakMap, Object.getOwnPropertyDescriptor, Int16Array" }, { - "name": "core-js-3-only-polyfill/es6-weak-map", - "signals": "WeakMap" + "name": "core-js-3-only-polyfill/es-typed-array-int32-array", + "signals": "Int8Array, Uint8ClampedArray, ArrayBuffer, DataView, WeakMap, Object.getOwnPropertyDescriptor, Int32Array" }, { - "name": "core-js-3-only-polyfill/es6-weak-set", - "signals": "WeakSet" + "name": "core-js-3-only-polyfill/es-typed-array-int8-array", + "signals": "Int8Array, Uint8ClampedArray, ArrayBuffer, DataView, WeakMap, Object.getOwnPropertyDescriptor" }, { - "name": "core-js-3-only-polyfill/es7-array-includes", - "signals": "Array.prototype.includes" + "name": "core-js-3-only-polyfill/es-typed-array-uint16-array", + "signals": "Int8Array, Uint8ClampedArray, ArrayBuffer, DataView, WeakMap, Object.getOwnPropertyDescriptor, Uint16Array" }, { - "name": "core-js-3-only-polyfill/es7-object-entries", - "signals": "Object.entries" + "name": "core-js-3-only-polyfill/es-typed-array-uint32-array", + "signals": "Int8Array, Uint8ClampedArray, ArrayBuffer, DataView, WeakMap, Object.getOwnPropertyDescriptor, Uint32Array" }, { - "name": "core-js-3-only-polyfill/es7-object-get-own-property-descriptors", - "signals": "Object.getOwnPropertyDescriptors" + "name": "core-js-3-only-polyfill/es-typed-array-uint8-array", + "signals": "Int8Array, Uint8ClampedArray, ArrayBuffer, DataView, WeakMap, Object.getOwnPropertyDescriptor, Uint8Array" }, { - "name": "core-js-3-only-polyfill/es7-object-values", - "signals": "Object.values" + "name": "core-js-3-only-polyfill/es-typed-array-uint8-clamped-array", + "signals": "Int8Array, Uint8ClampedArray, ArrayBuffer, DataView, WeakMap, Object.getOwnPropertyDescriptor" }, { - "name": "core-js-3-only-polyfill/es7-string-pad-end", - "signals": "String.prototype.padEnd" + "name": "core-js-3-only-polyfill/es-weak-map", + "signals": "WeakMap" }, { - "name": "core-js-3-only-polyfill/es7-string-pad-start", - "signals": "String.prototype.padStart" + "name": "core-js-3-only-polyfill/es-weak-set", + "signals": "WeakMap, WeakSet" }, { "name": "core-js-3-preset-env-esmodules/false", diff --git a/lighthouse-core/scripts/legacy-javascript/summary-sizes.txt b/lighthouse-core/scripts/legacy-javascript/summary-sizes.txt index 9fb2da6436aa..13e0a2afc062 100644 --- a/lighthouse-core/scripts/legacy-javascript/summary-sizes.txt +++ b/lighthouse-core/scripts/legacy-javascript/summary-sizes.txt @@ -1,170 +1,174 @@ +all-legacy-polyfills + 175764 all-legacy-polyfills-core-js-3/main.bundle.min.js + 125257 all-legacy-polyfills-core-js-2/main.bundle.min.js + core-js-2-only-polyfill - 47782 es6-typed-uint8-clamped-array/main.bundle.min.js - 47762 es6-typed-float64-array/main.bundle.min.js - 47762 es6-typed-float32-array/main.bundle.min.js - 47758 es6-typed-uint32-array/main.bundle.min.js - 47758 es6-typed-uint16-array/main.bundle.min.js - 47754 es6-typed-uint8-array/main.bundle.min.js - 47754 es6-typed-int32-array/main.bundle.min.js - 47754 es6-typed-int16-array/main.bundle.min.js - 47750 es6-typed-int8-array/main.bundle.min.js - 29558 es6-map/main.bundle.min.js - 29464 es6-set/main.bundle.min.js - 27321 es6-weak-map/main.bundle.min.js - 24689 es6-promise/main.bundle.min.js - 23171 es6-typed-array-buffer/main.bundle.min.js - 22925 es6-weak-set/main.bundle.min.js - 20929 es6-typed-data-view/main.bundle.min.js - 14924 es6-reflect-construct/main.bundle.min.js - 12782 es7-object-get-own-property-descriptors/main.bundle.min.js - 12373 es6-object-create/main.bundle.min.js - 12228 es6-array-from/main.bundle.min.js - 12007 es6-object-assign/main.bundle.min.js - 11619 es6-object-get-own-property-names/main.bundle.min.js - 11456 es6-array-find-index/main.bundle.min.js - 11429 es6-array-find/main.bundle.min.js - 11339 es7-object-entries/main.bundle.min.js - 11334 es7-object-values/main.bundle.min.js - 11284 es6-array-for-each/main.bundle.min.js - 11257 es6-array-filter/main.bundle.min.js - 11243 es6-array-some/main.bundle.min.js - 11236 es6-array-map/main.bundle.min.js - 11231 es6-object-keys/main.bundle.min.js - 11203 es6-reflect-own-keys/main.bundle.min.js - 11190 es6-object-define-properties/main.bundle.min.js - 10884 es6-reflect-set/main.bundle.min.js - 10406 es6-reflect-get/main.bundle.min.js - 10367 es7-array-includes/main.bundle.min.js - 10018 es6-string-ends-with/main.bundle.min.js - 9972 es6-string-starts-with/main.bundle.min.js - 9884 es6-reflect-set-prototype-of/main.bundle.min.js - 9770 es6-array-fill/main.bundle.min.js - 9750 es6-array-reduce-right/main.bundle.min.js - 9726 es6-object-set-prototype-of/main.bundle.min.js - 9724 es6-array-reduce/main.bundle.min.js - 9605 es7-string-pad-start/main.bundle.min.js - 9598 es7-string-pad-end/main.bundle.min.js - 9576 es6-object-get-own-property-descriptor/main.bundle.min.js - 9502 es6-array-last-index-of/main.bundle.min.js - 9359 es6-string-includes/main.bundle.min.js - 9240 es6-reflect-delete-property/main.bundle.min.js - 9217 es6-reflect-get-own-property-descriptor/main.bundle.min.js - 9164 es6-object-prevent-extensions/main.bundle.min.js - 9137 es6-number-parse-int/main.bundle.min.js - 9131 es6-number-parse-float/main.bundle.min.js - 9085 es6-object-freeze/main.bundle.min.js - 9071 es6-object-seal/main.bundle.min.js - 9053 es6-object-get-prototype-of/main.bundle.min.js - 8887 es6-string-raw/main.bundle.min.js - 8711 es6-reflect-get-prototype-of/main.bundle.min.js - 8637 es6-string-trim/main.bundle.min.js - 8489 es6-string-from-code-point/main.bundle.min.js - 8467 es6-date-to-iso-string/main.bundle.min.js - 8457 es6-string-code-point-at/main.bundle.min.js - 8261 es6-string-repeat/main.bundle.min.js - 8237 es6-array-of/main.bundle.min.js - 8235 es6-date-to-json/main.bundle.min.js - 8048 es6-reflect-define-property/main.bundle.min.js - 8042 es6-object-is-extensible/main.bundle.min.js - 8014 es6-object-is-sealed/main.bundle.min.js - 8014 es6-object-is-frozen/main.bundle.min.js - 7986 es6-reflect-apply/main.bundle.min.js - 7920 es6-number-is-safe-integer/main.bundle.min.js - 7858 es6-array-is-array/main.bundle.min.js - 7807 es6-reflect-prevent-extensions/main.bundle.min.js - 7787 es6-number-is-integer/main.bundle.min.js - 7737 es6-reflect-is-extensible/main.bundle.min.js - 7652 es6-object-define-property/main.bundle.min.js - 7583 es6-reflect-has/main.bundle.min.js - 7550 es6-date-now/main.bundle.min.js - 6037 es6-date-to-string/main.bundle.min.js - 3454 es6-function-name/main.bundle.min.js + 47832 es6-typed-uint8-clamped-array/main.bundle.min.js + 47812 es6-typed-float64-array/main.bundle.min.js + 47812 es6-typed-float32-array/main.bundle.min.js + 47808 es6-typed-uint32-array/main.bundle.min.js + 47808 es6-typed-uint16-array/main.bundle.min.js + 47804 es6-typed-uint8-array/main.bundle.min.js + 47804 es6-typed-int32-array/main.bundle.min.js + 47804 es6-typed-int16-array/main.bundle.min.js + 47800 es6-typed-int8-array/main.bundle.min.js + 29608 es6-map/main.bundle.min.js + 29514 es6-set/main.bundle.min.js + 27371 es6-weak-map/main.bundle.min.js + 24739 es6-promise/main.bundle.min.js + 23221 es6-typed-array-buffer/main.bundle.min.js + 22975 es6-weak-set/main.bundle.min.js + 20979 es6-typed-data-view/main.bundle.min.js + 14974 es6-reflect-construct/main.bundle.min.js + 12832 es7-object-get-own-property-descriptors/main.bundle.min.js + 12423 es6-object-create/main.bundle.min.js + 12278 es6-array-from/main.bundle.min.js + 12057 es6-object-assign/main.bundle.min.js + 11669 es6-object-get-own-property-names/main.bundle.min.js + 11506 es6-array-find-index/main.bundle.min.js + 11479 es6-array-find/main.bundle.min.js + 11389 es7-object-entries/main.bundle.min.js + 11384 es7-object-values/main.bundle.min.js + 11334 es6-array-for-each/main.bundle.min.js + 11307 es6-array-filter/main.bundle.min.js + 11293 es6-array-some/main.bundle.min.js + 11286 es6-array-map/main.bundle.min.js + 11281 es6-object-keys/main.bundle.min.js + 11253 es6-reflect-own-keys/main.bundle.min.js + 11240 es6-object-define-properties/main.bundle.min.js + 10934 es6-reflect-set/main.bundle.min.js + 10456 es6-reflect-get/main.bundle.min.js + 10417 es7-array-includes/main.bundle.min.js + 10068 es6-string-ends-with/main.bundle.min.js + 10022 es6-string-starts-with/main.bundle.min.js + 9934 es6-reflect-set-prototype-of/main.bundle.min.js + 9820 es6-array-fill/main.bundle.min.js + 9800 es6-array-reduce-right/main.bundle.min.js + 9776 es6-object-set-prototype-of/main.bundle.min.js + 9774 es6-array-reduce/main.bundle.min.js + 9655 es7-string-pad-start/main.bundle.min.js + 9648 es7-string-pad-end/main.bundle.min.js + 9626 es6-object-get-own-property-descriptor/main.bundle.min.js + 9552 es6-array-last-index-of/main.bundle.min.js + 9409 es6-string-includes/main.bundle.min.js + 9290 es6-reflect-delete-property/main.bundle.min.js + 9267 es6-reflect-get-own-property-descriptor/main.bundle.min.js + 9214 es6-object-prevent-extensions/main.bundle.min.js + 9187 es6-number-parse-int/main.bundle.min.js + 9181 es6-number-parse-float/main.bundle.min.js + 9135 es6-object-freeze/main.bundle.min.js + 9121 es6-object-seal/main.bundle.min.js + 9103 es6-object-get-prototype-of/main.bundle.min.js + 8937 es6-string-raw/main.bundle.min.js + 8761 es6-reflect-get-prototype-of/main.bundle.min.js + 8687 es6-string-trim/main.bundle.min.js + 8539 es6-string-from-code-point/main.bundle.min.js + 8517 es6-date-to-iso-string/main.bundle.min.js + 8507 es6-string-code-point-at/main.bundle.min.js + 8311 es6-string-repeat/main.bundle.min.js + 8287 es6-array-of/main.bundle.min.js + 8285 es6-date-to-json/main.bundle.min.js + 8098 es6-reflect-define-property/main.bundle.min.js + 8092 es6-object-is-extensible/main.bundle.min.js + 8064 es6-object-is-sealed/main.bundle.min.js + 8064 es6-object-is-frozen/main.bundle.min.js + 8036 es6-reflect-apply/main.bundle.min.js + 7970 es6-number-is-safe-integer/main.bundle.min.js + 7908 es6-array-is-array/main.bundle.min.js + 7857 es6-reflect-prevent-extensions/main.bundle.min.js + 7837 es6-number-is-integer/main.bundle.min.js + 7787 es6-reflect-is-extensible/main.bundle.min.js + 7702 es6-object-define-property/main.bundle.min.js + 7633 es6-reflect-has/main.bundle.min.js + 7600 es6-date-now/main.bundle.min.js + 6087 es6-date-to-string/main.bundle.min.js + 3504 es6-function-name/main.bundle.min.js core-js-2-preset-env-esmodules 2857 false/main.bundle.min.js 1352 true/main.bundle.min.js core-js-3-only-polyfill - 47781 es6-typed-uint8-clamped-array/main.bundle.min.js - 47761 es6-typed-float64-array/main.bundle.min.js - 47761 es6-typed-float32-array/main.bundle.min.js - 47757 es6-typed-uint32-array/main.bundle.min.js - 47757 es6-typed-uint16-array/main.bundle.min.js - 47753 es6-typed-uint8-array/main.bundle.min.js - 47753 es6-typed-int32-array/main.bundle.min.js - 47753 es6-typed-int16-array/main.bundle.min.js - 47749 es6-typed-int8-array/main.bundle.min.js - 29560 es6-map/main.bundle.min.js - 29466 es6-set/main.bundle.min.js - 27322 es6-weak-map/main.bundle.min.js - 24689 es6-promise/main.bundle.min.js - 23171 es6-typed-array-buffer/main.bundle.min.js - 22924 es6-weak-set/main.bundle.min.js - 20929 es6-typed-data-view/main.bundle.min.js - 14926 es6-reflect-construct/main.bundle.min.js - 12784 es7-object-get-own-property-descriptors/main.bundle.min.js - 12373 es6-object-create/main.bundle.min.js - 12229 es6-array-from/main.bundle.min.js - 12006 es6-object-assign/main.bundle.min.js - 11618 es6-object-get-own-property-names/main.bundle.min.js - 11456 es6-array-find-index/main.bundle.min.js - 11429 es6-array-find/main.bundle.min.js - 11338 es7-object-entries/main.bundle.min.js - 11333 es7-object-values/main.bundle.min.js - 11283 es6-array-for-each/main.bundle.min.js - 11256 es6-array-filter/main.bundle.min.js - 11242 es6-array-some/main.bundle.min.js - 11235 es6-array-map/main.bundle.min.js - 11230 es6-object-keys/main.bundle.min.js - 11202 es6-reflect-own-keys/main.bundle.min.js - 11189 es6-object-define-properties/main.bundle.min.js - 10883 es6-reflect-set/main.bundle.min.js - 10405 es6-reflect-get/main.bundle.min.js - 10368 es7-array-includes/main.bundle.min.js - 10017 es6-string-ends-with/main.bundle.min.js - 9971 es6-string-starts-with/main.bundle.min.js - 9883 es6-reflect-set-prototype-of/main.bundle.min.js - 9769 es6-array-fill/main.bundle.min.js - 9749 es6-array-reduce-right/main.bundle.min.js - 9725 es6-object-set-prototype-of/main.bundle.min.js - 9723 es6-array-reduce/main.bundle.min.js - 9605 es7-string-pad-start/main.bundle.min.js - 9598 es7-string-pad-end/main.bundle.min.js - 9575 es6-object-get-own-property-descriptor/main.bundle.min.js - 9501 es6-array-last-index-of/main.bundle.min.js - 9358 es6-string-includes/main.bundle.min.js - 9239 es6-reflect-delete-property/main.bundle.min.js - 9216 es6-reflect-get-own-property-descriptor/main.bundle.min.js - 9163 es6-object-prevent-extensions/main.bundle.min.js - 9138 es6-number-parse-int/main.bundle.min.js - 9132 es6-number-parse-float/main.bundle.min.js - 9084 es6-object-freeze/main.bundle.min.js - 9070 es6-object-seal/main.bundle.min.js - 9054 es6-object-get-prototype-of/main.bundle.min.js - 8886 es6-string-raw/main.bundle.min.js - 8711 es6-reflect-get-prototype-of/main.bundle.min.js - 8638 es6-string-trim/main.bundle.min.js - 8488 es6-string-from-code-point/main.bundle.min.js - 8468 es6-date-to-iso-string/main.bundle.min.js - 8457 es6-string-code-point-at/main.bundle.min.js - 8261 es6-string-repeat/main.bundle.min.js - 8238 es6-array-of/main.bundle.min.js - 8236 es6-date-to-json/main.bundle.min.js - 8047 es6-reflect-define-property/main.bundle.min.js - 8041 es6-object-is-extensible/main.bundle.min.js - 8013 es6-object-is-sealed/main.bundle.min.js - 8013 es6-object-is-frozen/main.bundle.min.js - 7985 es6-reflect-apply/main.bundle.min.js - 7919 es6-number-is-safe-integer/main.bundle.min.js - 7858 es6-array-is-array/main.bundle.min.js - 7806 es6-reflect-prevent-extensions/main.bundle.min.js - 7786 es6-number-is-integer/main.bundle.min.js - 7736 es6-reflect-is-extensible/main.bundle.min.js - 7651 es6-object-define-property/main.bundle.min.js - 7582 es6-reflect-has/main.bundle.min.js - 7549 es6-date-now/main.bundle.min.js - 6036 es6-date-to-string/main.bundle.min.js - 3454 es6-function-name/main.bundle.min.js + 62423 es-typed-array-uint8-clamped-array/main.bundle.min.js + 62403 es-typed-array-float64-array/main.bundle.min.js + 62403 es-typed-array-float32-array/main.bundle.min.js + 62399 es-typed-array-uint32-array/main.bundle.min.js + 62399 es-typed-array-uint16-array/main.bundle.min.js + 62395 es-typed-array-uint8-array/main.bundle.min.js + 62395 es-typed-array-int32-array/main.bundle.min.js + 62395 es-typed-array-int16-array/main.bundle.min.js + 62391 es-typed-array-int8-array/main.bundle.min.js + 49607 es-set/main.bundle.min.js + 49607 es-map/main.bundle.min.js + 45304 es-promise/main.bundle.min.js + 41632 es-weak-map/main.bundle.min.js + 39560 es-weak-set/main.bundle.min.js + 36113 es-array-buffer-constructor/main.bundle.min.js + 35145 es-data-view/main.bundle.min.js + 29583 es-array-find-index/main.bundle.min.js + 29511 es-array-find/main.bundle.min.js + 27436 es-array-from/main.bundle.min.js + 26903 es-array-filter/main.bundle.min.js + 26876 es-array-map/main.bundle.min.js + 26202 es-array-includes/main.bundle.min.js + 26052 es-array-for-each/main.bundle.min.js + 25876 es-array-fill/main.bundle.min.js + 25831 es-array-some/main.bundle.min.js + 25447 es-reflect-construct/main.bundle.min.js + 23284 es-string-ends-with/main.bundle.min.js + 23234 es-string-starts-with/main.bundle.min.js + 23064 es-object-create/main.bundle.min.js + 22760 es-array-reduce-right/main.bundle.min.js + 22722 es-array-reduce/main.bundle.min.js + 22634 es-reflect-set/main.bundle.min.js + 22455 es-string-includes/main.bundle.min.js + 22249 es-date-to-iso-string/main.bundle.min.js + 22159 es-array-last-index-of/main.bundle.min.js + 22061 es-object-assign/main.bundle.min.js + 21773 es-string-pad-start/main.bundle.min.js + 21759 es-string-pad-end/main.bundle.min.js + 21753 es-object-prevent-extensions/main.bundle.min.js + 21691 es-reflect-get/main.bundle.min.js + 21652 es-object-freeze/main.bundle.min.js + 21634 es-object-seal/main.bundle.min.js + 21391 es-object-get-prototype-of/main.bundle.min.js + 21241 es-reflect-get-prototype-of/main.bundle.min.js + 21114 es-object-get-own-property-descriptors/main.bundle.min.js + 21101 es-number-parse-float/main.bundle.min.js + 21070 es-number-parse-int/main.bundle.min.js + 21034 es-string-trim/main.bundle.min.js + 20999 es-reflect-set-prototype-of/main.bundle.min.js + 20858 es-object-entries/main.bundle.min.js + 20855 es-object-define-properties/main.bundle.min.js + 20851 es-object-values/main.bundle.min.js + 20698 es-array-of/main.bundle.min.js + 20694 es-object-get-own-property-names/main.bundle.min.js + 20641 es-object-set-prototype-of/main.bundle.min.js + 20596 es-string-code-point-at/main.bundle.min.js + 20511 es-object-keys/main.bundle.min.js + 20453 es-reflect-apply/main.bundle.min.js + 20434 es-reflect-define-property/main.bundle.min.js + 20352 es-date-to-json/main.bundle.min.js + 20311 es-object-get-own-property-descriptor/main.bundle.min.js + 20303 es-reflect-prevent-extensions/main.bundle.min.js + 20243 es-string-from-code-point/main.bundle.min.js + 20200 es-string-repeat/main.bundle.min.js + 20105 es-reflect-get-own-property-descriptor/main.bundle.min.js + 20088 es-string-raw/main.bundle.min.js + 20035 es-reflect-delete-property/main.bundle.min.js + 20031 es-number-is-safe-integer/main.bundle.min.js + 19993 es-object-is-extensible/main.bundle.min.js + 19957 es-object-is-sealed/main.bundle.min.js + 19957 es-object-is-frozen/main.bundle.min.js + 19922 es-number-is-integer/main.bundle.min.js + 19890 es-object-define-property/main.bundle.min.js + 19879 es-array-is-array/main.bundle.min.js + 19843 es-reflect-is-extensible/main.bundle.min.js + 19685 es-reflect-own-keys/main.bundle.min.js + 19654 es-reflect-has/main.bundle.min.js + 19625 es-date-now/main.bundle.min.js + 10443 es-date-to-string/main.bundle.min.js + 4488 es-function-name/main.bundle.min.js core-js-3-preset-env-esmodules 2857 false/main.bundle.min.js