babel-plugin-polyfill-es-shims 0.7.1 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/data/polyfills.json +41 -3
- package/esm/index.mjs +13 -2
- package/esm/index.mjs.map +1 -1
- package/lib/mappings.js +13 -2
- package/package.json +3 -3
package/data/polyfills.json
CHANGED
|
@@ -139,16 +139,22 @@
|
|
|
139
139
|
"chrome": "97",
|
|
140
140
|
"opera": "83",
|
|
141
141
|
"edge": "97",
|
|
142
|
-
"
|
|
142
|
+
"firefox": "104",
|
|
143
|
+
"safari": "15.4",
|
|
143
144
|
"node": "18",
|
|
145
|
+
"ios": "15.4",
|
|
146
|
+
"samsung": "18",
|
|
144
147
|
"electron": "17"
|
|
145
148
|
},
|
|
146
149
|
"Array.prototype.findLastIndex": {
|
|
147
150
|
"chrome": "97",
|
|
148
151
|
"opera": "83",
|
|
149
152
|
"edge": "97",
|
|
150
|
-
"
|
|
153
|
+
"firefox": "104",
|
|
154
|
+
"safari": "15.4",
|
|
151
155
|
"node": "18",
|
|
156
|
+
"ios": "15.4",
|
|
157
|
+
"samsung": "18",
|
|
152
158
|
"electron": "17"
|
|
153
159
|
},
|
|
154
160
|
"Array.prototype.flat": {
|
|
@@ -367,6 +373,7 @@
|
|
|
367
373
|
"safari": "15",
|
|
368
374
|
"node": "16.11",
|
|
369
375
|
"ios": "15",
|
|
376
|
+
"samsung": "17",
|
|
370
377
|
"electron": "15"
|
|
371
378
|
},
|
|
372
379
|
"Function.prototype.name": {
|
|
@@ -382,6 +389,17 @@
|
|
|
382
389
|
"samsung": "1",
|
|
383
390
|
"electron": "0.20"
|
|
384
391
|
},
|
|
392
|
+
"Map": {
|
|
393
|
+
"chrome": "51",
|
|
394
|
+
"opera": "38",
|
|
395
|
+
"edge": "15",
|
|
396
|
+
"firefox": "53",
|
|
397
|
+
"safari": "10",
|
|
398
|
+
"node": "6.5",
|
|
399
|
+
"ios": "10",
|
|
400
|
+
"samsung": "5",
|
|
401
|
+
"electron": "1.2"
|
|
402
|
+
},
|
|
385
403
|
"Math.acosh": {
|
|
386
404
|
"chrome": "38",
|
|
387
405
|
"opera": "25",
|
|
@@ -652,8 +670,10 @@
|
|
|
652
670
|
"opera": "79",
|
|
653
671
|
"edge": "93",
|
|
654
672
|
"firefox": "92",
|
|
655
|
-
"safari": "
|
|
673
|
+
"safari": "15.4",
|
|
656
674
|
"node": "16.9",
|
|
675
|
+
"ios": "15.4",
|
|
676
|
+
"samsung": "17",
|
|
657
677
|
"electron": "14"
|
|
658
678
|
},
|
|
659
679
|
"Object.values": {
|
|
@@ -745,6 +765,24 @@
|
|
|
745
765
|
"samsung": "5",
|
|
746
766
|
"electron": "0.37"
|
|
747
767
|
},
|
|
768
|
+
"Set": {
|
|
769
|
+
"chrome": "51",
|
|
770
|
+
"opera": "38",
|
|
771
|
+
"edge": "15",
|
|
772
|
+
"firefox": "53",
|
|
773
|
+
"safari": "10",
|
|
774
|
+
"node": "6.5",
|
|
775
|
+
"ios": "10",
|
|
776
|
+
"samsung": "5",
|
|
777
|
+
"electron": "1.2"
|
|
778
|
+
},
|
|
779
|
+
"Set.prototype.difference": {},
|
|
780
|
+
"Set.prototype.intersection": {},
|
|
781
|
+
"Set.prototype.isDisjointFrom": {},
|
|
782
|
+
"Set.prototype.isSubsetOf": {},
|
|
783
|
+
"Set.prototype.isSupersetOf": {},
|
|
784
|
+
"Set.prototype.symmetricDifference": {},
|
|
785
|
+
"Set.prototype.union": {},
|
|
748
786
|
"String.fromCodePoint": {
|
|
749
787
|
"chrome": "41",
|
|
750
788
|
"opera": "28",
|
package/esm/index.mjs
CHANGED
|
@@ -39,6 +39,8 @@ const DATE_VERSION = "2.0.0"; // MISSING DATA: defineGlobal("Date", DATE_VERSION
|
|
|
39
39
|
|
|
40
40
|
defineGlobal("globalThis", "1.0.0");
|
|
41
41
|
defineGlobal("parseInt", "2.0.0");
|
|
42
|
+
defineGlobal("Map", "1.0.4", "es-map");
|
|
43
|
+
defineGlobal("Set", "1.1.0", "es-set");
|
|
42
44
|
|
|
43
45
|
const arrayCheck = thisObj => expr`Array.isArray(${thisObj})`;
|
|
44
46
|
|
|
@@ -46,7 +48,8 @@ const typeofCheck = type => thisObj => expr`typeof ${thisObj} === "${type}"`;
|
|
|
46
48
|
|
|
47
49
|
const instanceofCheck = Class => thisObj => expr`${thisObj} instanceof ${t.identifier(Class)}`;
|
|
48
50
|
|
|
49
|
-
const stringCheck = typeofCheck("string");
|
|
51
|
+
const stringCheck = typeofCheck("string"); // const setCheck = instanceofCheck("Set");
|
|
52
|
+
|
|
50
53
|
const getter = {
|
|
51
54
|
getter: true
|
|
52
55
|
};
|
|
@@ -148,7 +151,15 @@ defineInstance("Promise", "finally", "1.2.1", instanceofCheck("Promise"));
|
|
|
148
151
|
defineStatic("Reflect", "apply", "1.0.0");
|
|
149
152
|
defineStatic("Reflect", "ownKeys", "1.0.1");
|
|
150
153
|
defineStatic("Reflect", "getPrototypeOf", "1.0.0");
|
|
151
|
-
defineInstance("RegExp", "flags", "1.3.0", instanceofCheck("RegExp"), getter);
|
|
154
|
+
defineInstance("RegExp", "flags", "1.3.0", instanceofCheck("RegExp"), getter); // TODO: Uncomment when Stage 4
|
|
155
|
+
// defineInstance("Set", "difference", "1.0.2", setCheck);
|
|
156
|
+
// defineInstance("Set", "intersection", "1.0.2", setCheck);
|
|
157
|
+
// defineInstance("Set", "isDisjointFrom", "1.0.2", setCheck);
|
|
158
|
+
// defineInstance("Set", "isSubsetOf", "1.0.2", setCheck);
|
|
159
|
+
// defineInstance("Set", "isSupersetOf", "1.0.2", setCheck);
|
|
160
|
+
// defineInstance("Set", "symmetricDifference", "1.0.2", setCheck);
|
|
161
|
+
// defineInstance("Set", "union", "1.0.2", setCheck);
|
|
162
|
+
|
|
152
163
|
defineStatic("String", "fromCodePoint", "1.0.0");
|
|
153
164
|
defineStatic("String", "raw", "1.0.1");
|
|
154
165
|
defineInstance("String", "codePoitAt", "1.0.0", stringCheck);
|
package/esm/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../src/mappings.ts","../src/index.ts"],"sourcesContent":["import { types as t, template } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\nimport type { MetaDescriptor } from \"@babel/helper-define-polyfill-provider\";\n\nconst expr = template.expression.ast;\n\nconst has = Function.call.bind(Object.hasOwnProperty);\n\nexport type Descriptor = {\n name: string;\n version: string;\n package: string;\n path: string; // This is different from .package for multi-entry-point packages,\n pure?: false;\n global?: false;\n thisCheck?: (thisObj: any) => any;\n exclude?: (meta: MetaDescriptor, path: NodePath) => boolean;\n getter?: true;\n};\n\nexport const Globals = {};\nexport const StaticProperties = {};\nexport const InstanceProperties = {};\n\nconst lessThanArgs = num => (meta, path: NodePath) => {\n const { node, parent } = path;\n if (!t.isNewExpression(parent, { callee: node })) return false;\n if (parent.arguments.length >= num) return false;\n return parent.arguments.every(arg => !t.isSpreadElement(arg));\n};\n\nfor (const [name, causeArgNum] of [\n [\"Error\", 2],\n [\"AggregateError\", 3],\n [\"EvalError\", 2],\n [\"RangeError\", 2],\n [\"ReferenceError\", 2],\n [\"SyntaxError\", 2],\n [\"TypeError\", 2],\n [\"URIError\", 2],\n] as [string, number][]) {\n defineGlobal(name, \"1.0.1\", \"error-cause\", {\n exclude: lessThanArgs(causeArgNum),\n subfolder: name,\n polyfillName: \"Error cause\",\n });\n}\n// This needs to come after the AggregateError cause polyfill, since this\n// one polyfills less features.\ndefineGlobal(\"AggregateError\", \"1.0.2\", \"es-aggregate-error\");\nconst DATE_VERSION = \"2.0.0\";\n// MISSING DATA: defineGlobal(\"Date\", DATE_VERSION, \"date\", { subfolder: \"Date\" });\ndefineGlobal(\"globalThis\", \"1.0.0\");\ndefineGlobal(\"parseInt\", \"2.0.0\");\n\nconst arrayCheck = thisObj => expr`Array.isArray(${thisObj})`;\nconst typeofCheck = type => thisObj => expr`typeof ${thisObj} === \"${type}\"`;\nconst instanceofCheck = Class => thisObj =>\n expr`${thisObj} instanceof ${t.identifier(Class)}`;\nconst stringCheck = typeofCheck(\"string\");\n\nconst getter = { getter: true };\nconst excludeStatic = obj => ({\n exclude: meta =>\n meta.kind === \"property\" &&\n meta.placement === \"static\" &&\n meta.object === obj,\n});\nconst excludeObject = excludeStatic(\"Object\");\n\ndefineStatic(\"Array\", \"from\", \"1.1.0\");\ndefineStatic(\"Array\", \"of\", \"1.0.0\");\ndefineInstance(\"Array\", \"at\", \"1.0.0\", arrayCheck);\ndefineInstance(\"Array\", \"concat\", \"1.0.2\", arrayCheck);\ndefineInstance(\"Array\", \"copyWithin\", \"1.0.0\", arrayCheck);\ndefineInstance(\"Array\", \"entries\", \"1.0.0\", arrayCheck, excludeObject);\ndefineInstance(\"Array\", \"every\", \"1.1.0\", arrayCheck);\ndefineInstance(\"Array\", \"filter\", \"1.0.0\", arrayCheck);\ndefineInstance(\"Array\", \"find\", \"2.1.1\", arrayCheck);\ndefineInstance(\"Array\", \"findIndex\", \"2.1.0\", arrayCheck);\ndefineInstance(\"Array\", \"findLast\", \"1.0.0\", arrayCheck);\ndefineInstance(\"Array\", \"findLastIndex\", \"1.0.0\", arrayCheck);\ndefineInstance(\"Array\", \"flat\", \"1.2.3\", arrayCheck);\ndefineInstance(\"Array\", \"flatMap\", \"1.2.3\", arrayCheck);\ndefineInstance(\"Array\", \"includes\", \"3.1.1\", arrayCheck, {\n pkg: \"array-includes\",\n});\ndefineInstance(\"Array\", \"indexOf\", \"1.0.1\", arrayCheck);\n// MISSING DATA: defineInstance(\"Array\", \"join\", \"1.0.0\", arrayCheck);\ndefineInstance(\"Array\", \"keys\", \"1.0.0\", arrayCheck, excludeObject);\ndefineInstance(\"Array\", \"lastIndexOf\", \"1.0.0\", arrayCheck);\ndefineInstance(\"Array\", \"map\", \"1.0.2\", arrayCheck);\ndefineInstance(\"Array\", \"reduce\", \"1.0.1\", arrayCheck);\ndefineInstance(\"Array\", \"reduceRight\", \"1.0.1\", arrayCheck);\n// MISSING DATA: defineInstance(\"Array\", \"slice\", \"1.0.0\", arrayCheck);\ndefineInstance(\"Array\", \"some\", \"1.1.1\", arrayCheck);\ndefineInstance(\"Array\", \"splice\", \"1.0.1\", arrayCheck);\ndefineInstance(\"Array\", \"toReversed\", \"1.0.1\", arrayCheck);\ndefineInstance(\"Array\", \"toSorted\", \"1.0.0\", arrayCheck);\ndefineInstance(\"Array\", \"toSpliced\", \"1.0.0\", arrayCheck);\ndefineInstance(\"Array\", \"unshift\", \"1.0.0\", arrayCheck);\ndefineInstance(\"Array\", \"values\", \"1.0.0\", arrayCheck, excludeObject);\ndefineInstance(\"Array\", \"with\", \"1.0.1\", arrayCheck);\n\nfor (const name of [\n \"now\",\n // MISSING DATA: \"parse\"\n]) {\n defineStatic(\"Date\", name, DATE_VERSION, {\n pkg: \"date\",\n subfolder: `Date.${name}`,\n });\n}\nfor (const name of [\n // MISSING DATA: \"getFullYear\",\n // MISSING DATA: \"getMonth\",\n // MISSING DATA: \"getDate\",\n // MISSING DATA: \"getUTCDate\",\n // MISSING DATA: \"getUTCFullYear\",\n // MISSING DATA: \"getUTCMonth\",\n // MISSING DATA: \"toUTCString\",\n // MISSING DATA: \"toDateString\",\n // MISSING DATA: \"toString\",\n \"toISOString\",\n \"toJSON\",\n]) {\n defineInstance(\"Date\", name, DATE_VERSION, instanceofCheck(\"Date\"), {\n pkg: \"date\",\n subfolder: `Date.prototype.${name}`,\n });\n}\n\ndefineInstance(\"Function\", \"name\", \"1.1.2\", typeofCheck(\"function\"), getter);\n\ndefineStatic(\"Math\", \"acosh\", \"1.0.0\");\ndefineStatic(\"Math\", \"atanh\", \"1.0.0\");\ndefineStatic(\"Math\", \"clz32\", \"1.0.0\");\ndefineStatic(\"Math\", \"cbrt\", \"1.0.0\");\ndefineStatic(\"Math\", \"fround\", \"1.0.0\");\ndefineStatic(\"Math\", \"log1p\", \"1.0.1\");\ndefineStatic(\"Math\", \"sign\", \"2.0.0\");\n\ndefineStatic(\"Number\", \"isFinite\", \"1.0.0\");\ndefineStatic(\"Number\", \"isInteger\", \"1.0.0\");\ndefineStatic(\"Number\", \"isSafeInteger\", \"1.0.0\");\ndefineStatic(\"Number\", \"isNaN\", \"1.0.0\", { pkg: \"number.isnan\" });\ndefineStatic(\"Number\", \"parseFloat\", \"1.0.0\");\ndefineStatic(\"Number\", \"parseInt\", \"1.0.0\");\n\ndefineStatic(\"Object\", \"assign\", \"4.1.0\");\ndefineStatic(\"Object\", \"defineProperties\", \"1.0.0\");\ndefineStatic(\"Object\", \"entries\", \"1.1.1\");\ndefineStatic(\"Object\", \"fromEntries\", \"2.0.2\");\ndefineStatic(\"Object\", \"hasOwn\", \"1.0.0\");\ndefineStatic(\"Object\", \"is\", \"1.1.2\", { pkg: \"object-is\" });\ndefineStatic(\"Object\", \"getOwnPropertyDescriptors\", \"2.1.0\");\ndefineStatic(\"Object\", \"getPrototypeOf\", \"1.0.1\");\ndefineStatic(\"Object\", \"values\", \"1.1.1\");\n\ndefineStatic(\"Promise\", \"allSettled\", \"1.0.2\");\ndefineStatic(\"Promise\", \"any\", \"2.0.1\");\ndefineStatic(\"Promise\", \"try\", \"1.0.0\");\ndefineInstance(\"Promise\", \"finally\", \"1.2.1\", instanceofCheck(\"Promise\"));\n\ndefineStatic(\"Reflect\", \"apply\", \"1.0.0\");\ndefineStatic(\"Reflect\", \"ownKeys\", \"1.0.1\");\ndefineStatic(\"Reflect\", \"getPrototypeOf\", \"1.0.0\");\n\ndefineInstance(\"RegExp\", \"flags\", \"1.3.0\", instanceofCheck(\"RegExp\"), getter);\n\ndefineStatic(\"String\", \"fromCodePoint\", \"1.0.0\");\ndefineStatic(\"String\", \"raw\", \"1.0.1\");\ndefineInstance(\"String\", \"codePoitAt\", \"1.0.0\", stringCheck);\ndefineInstance(\"String\", \"endsWith\", \"1.0.0\", stringCheck);\ndefineInstance(\"String\", \"includes\", \"2.0.0\", stringCheck);\ndefineInstance(\"String\", \"at\", \"1.0.0\", stringCheck);\ndefineInstance(\"String\", \"matchAll\", \"4.0.2\", stringCheck);\ndefineInstance(\"String\", \"padEnd\", \"1.1.1\", stringCheck);\ndefineInstance(\"String\", \"padStart\", \"3.1.0\", stringCheck);\ndefineInstance(\"String\", \"repeat\", \"1.0.0\", stringCheck);\ndefineInstance(\"String\", \"replaceAll\", \"1.0.3\", stringCheck);\ndefineInstance(\n \"String\",\n \"split\",\n \"1.0.1\",\n stringCheck,\n excludeStatic(\"Symbol\"),\n);\ndefineInstance(\"String\", \"startsWith\", \"1.0.0\", stringCheck);\ndefineInstance(\"String\", \"substr\", \"1.0.0\", stringCheck);\ndefineInstance(\"String\", \"trim\", \"1.2.1\", stringCheck);\ndefineInstance(\"String\", \"trimEnd\", \"1.0.0\", stringCheck);\ndefineInstance(\"String\", \"trimLeft\", \"2.1.1\", stringCheck);\ndefineInstance(\"String\", \"trimRight\", \"2.1.1\", stringCheck);\ndefineInstance(\"String\", \"trimStart\", \"1.0.0\", stringCheck);\n\ndefineInstance(\n \"Symbol\",\n \"description\",\n \"1.0.2\",\n instanceofCheck(\"Symbol\"),\n getter,\n);\n\n// Annex B\nfor (const name of [\n \"anchor\",\n \"big\",\n \"blink\",\n \"bold\",\n \"fixed\",\n \"fontcolor\",\n \"fontsize\",\n \"italics\",\n \"link\",\n \"small\",\n \"strike\",\n \"sub\",\n \"sup\",\n]) {\n defineInstance(\"String\", name, \"1.0.0\", stringCheck, {\n pkg: `es-string-html-methods`,\n subfolder: name,\n });\n}\n\nfunction createDescriptor(name, version, pkg = name.toLowerCase(), subfolder?) {\n return {\n name,\n version,\n package: pkg,\n path: subfolder ? `${pkg}/${subfolder}` : pkg,\n };\n}\n\ntype ExcludeFilter = (meta: MetaDescriptor, path: NodePath) => boolean;\n\nfunction defineGlobal(\n name,\n version,\n pkg?,\n {\n exclude,\n subfolder,\n polyfillName = name,\n }: {\n exclude?: ExcludeFilter;\n subfolder?: string;\n polyfillName?: string;\n } = {},\n) {\n if (!has(Globals, name)) Globals[name] = [];\n Globals[name].push({\n ...createDescriptor(polyfillName, version, pkg, subfolder),\n exclude,\n nameHint: name,\n });\n}\n\nfunction defineStatic(\n object,\n property,\n version,\n { pkg, subfolder }: { pkg?: string; subfolder?: string } = {},\n) {\n if (!has(StaticProperties, object)) StaticProperties[object] = {};\n\n StaticProperties[object][property] = [\n createDescriptor(`${object}.${property}`, version, pkg, subfolder),\n ];\n}\n\nfunction defineInstance(\n object,\n property,\n version,\n thisCheck,\n {\n getter = false,\n exclude,\n pkg,\n subfolder,\n }: {\n getter?: boolean;\n exclude?: ExcludeFilter;\n pkg?: string;\n subfolder?: string;\n } = {},\n) {\n if (!has(InstanceProperties, property)) InstanceProperties[property] = [];\n\n InstanceProperties[property].push({\n ...createDescriptor(\n `${object}.prototype.${property}`,\n version,\n pkg,\n subfolder,\n ),\n thisCheck,\n exclude,\n getter,\n });\n}\n","import defineProvider, {\n type Utils,\n type MetaDescriptor,\n} from \"@babel/helper-define-polyfill-provider\";\nimport type { NodePath } from \"@babel/traverse\";\n\nimport polyfills from \"../data/polyfills.js\";\n\nimport {\n type Descriptor,\n Globals,\n StaticProperties,\n InstanceProperties,\n} from \"./mappings\";\n\nexport default defineProvider<{}>(function ({\n shouldInjectPolyfill,\n assertDependency,\n createMetaResolver,\n debug,\n babel: { template, types: t },\n}) {\n const expr = template.expression.ast;\n\n const resolvePolyfill = createMetaResolver<Descriptor[]>({\n global: Globals,\n static: StaticProperties,\n instance: InstanceProperties,\n });\n\n function createDescIterator(\n cb: (desc: Descriptor, utils: Utils, path: NodePath) => void,\n instance?: (\n meta: MetaDescriptor,\n resolved: any,\n utils: Utils,\n path: any,\n ) => void,\n ) {\n return (meta: MetaDescriptor, utils: Utils, path: NodePath) => {\n if (path.parentPath.isUnaryExpression({ operator: \"delete\" })) return;\n\n const resolved = resolvePolyfill(meta);\n if (!resolved) return;\n\n if (instance && resolved.kind === \"instance\") {\n instance(meta, resolved, utils, path);\n return;\n }\n\n for (const desc of resolved.desc) {\n if (!desc.exclude?.(meta, path) && shouldInjectPolyfill(desc.name)) {\n cb(desc, utils, path);\n\n // Since global and static polyfills are unambiguous, we only need to\n // inject the first non-excluded one.\n if (resolved.kind !== \"instance\") {\n break;\n }\n }\n }\n };\n }\n\n function injectDefault(desc, utils) {\n assertDependency(desc.package, desc.version);\n debug(desc.name);\n\n return utils.injectDefaultImport(desc.path, desc.nameHint || desc.name);\n }\n\n const seen = new WeakSet();\n\n return {\n name: \"es-shims\",\n polyfills,\n\n usageGlobal: createDescIterator((desc, utils) => {\n if (desc.global === false) return;\n\n assertDependency(desc.package, desc.version);\n\n utils.injectGlobalImport(`${desc.path}/auto`);\n\n debug(desc.name);\n }),\n\n usagePure: createDescIterator(\n (desc, utils, path) => {\n path.replaceWith(injectDefault(desc, utils));\n },\n (meta, resolved, utils, path) => {\n if (meta.kind !== \"property\") return;\n if (path.parentPath.isAssignmentExpression({ left: path.node })) return;\n\n if (seen.has(path.node)) return;\n seen.add(path.node);\n\n const isCall = path.parentPath.isCallExpression({ callee: path.node });\n const isGetter = resolved.desc[0].getter;\n\n const matchesPolyfill = ({ name }) =>\n name.startsWith(meta.object as any as string);\n\n let index = -1;\n if (\n // This is the actual method for sure.\n meta.kind === \"property\" &&\n meta.placement === \"prototype\" &&\n meta.object != null &&\n (index = resolved.desc.findIndex(matchesPolyfill)) !== -1\n ) {\n const desc = resolved.desc[index];\n if (!shouldInjectPolyfill(desc.name)) return;\n\n const id = injectDefault(desc, utils);\n\n if (isGetter) {\n path.replaceWith(expr`${id}(${path.node.object})`);\n } else if (isCall) {\n path.parentPath.unshiftContainer(\"arguments\", path.node.object);\n path.replaceWith(id);\n } else if (\n path.parentPath.isMemberExpression({\n object: path.node,\n computed: false,\n }) &&\n path.parent.property.name === \"call\" &&\n path.parentPath.parentPath.isCallExpression({ callee: path.parent })\n ) {\n path.parentPath.replaceWith(id);\n } else {\n path.replaceWith(expr`${id}.getPolyfill()`);\n }\n } else {\n let tmp;\n let parent;\n let replacement = path.node;\n const { object } = path.node;\n\n for (const desc of resolved.desc) {\n const { thisCheck } = desc;\n if (\n !thisCheck ||\n desc.exclude?.(meta) ||\n !shouldInjectPolyfill(desc.name)\n ) {\n continue;\n }\n\n if (!tmp) {\n tmp = path.scope.generateUidIdentifierBasedOnNode(object);\n path.scope.push({ id: t.cloneNode(tmp) });\n path.get(\"object\").replaceWith(tmp);\n }\n\n const id = injectDefault(desc, utils);\n\n replacement = t.conditionalExpression(\n thisCheck(t.cloneNode(tmp)),\n isGetter\n ? expr`${id}(${t.cloneNode(tmp)})`\n : isCall\n ? id\n : expr`${id}.getPolyfill()`,\n replacement,\n );\n\n parent = parent ?? replacement;\n }\n\n if (!parent) return;\n\n replacement = expr`(${t.cloneNode(tmp)} = ${object}, ${replacement})`;\n\n if (!isGetter && isCall) {\n parent.alternate = expr`Function.call.bind(${parent.alternate})`;\n path.parentPath.unshiftContainer(\"arguments\", t.cloneNode(tmp));\n }\n\n path.replaceWith(replacement);\n }\n },\n ),\n };\n});\n"],"names":["types","t","template","expr","expression","ast","has","Function","call","bind","Object","hasOwnProperty","Globals","StaticProperties","InstanceProperties","lessThanArgs","num","meta","path","node","parent","isNewExpression","callee","arguments","length","every","arg","isSpreadElement","name","causeArgNum","defineGlobal","exclude","subfolder","polyfillName","DATE_VERSION","arrayCheck","thisObj","typeofCheck","type","instanceofCheck","Class","identifier","stringCheck","getter","excludeStatic","obj","kind","placement","object","excludeObject","defineStatic","defineInstance","pkg","createDescriptor","version","toLowerCase","package","push","nameHint","property","thisCheck","defineProvider","shouldInjectPolyfill","assertDependency","createMetaResolver","debug","babel","resolvePolyfill","global","static","instance","createDescIterator","cb","utils","parentPath","isUnaryExpression","operator","resolved","desc","injectDefault","injectDefaultImport","seen","WeakSet","polyfills","usageGlobal","injectGlobalImport","usagePure","replaceWith","isAssignmentExpression","left","add","isCall","isCallExpression","isGetter","matchesPolyfill","startsWith","index","findIndex","id","unshiftContainer","isMemberExpression","computed","tmp","replacement","scope","generateUidIdentifierBasedOnNode","cloneNode","get","conditionalExpression","alternate"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../src/mappings.ts","../src/index.ts"],"sourcesContent":["import { types as t, template } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\nimport type { MetaDescriptor } from \"@babel/helper-define-polyfill-provider\";\n\nconst expr = template.expression.ast;\n\nconst has = Function.call.bind(Object.hasOwnProperty);\n\nexport type Descriptor = {\n name: string;\n version: string;\n package: string;\n path: string; // This is different from .package for multi-entry-point packages,\n pure?: false;\n global?: false;\n thisCheck?: (thisObj: any) => any;\n exclude?: (meta: MetaDescriptor, path: NodePath) => boolean;\n getter?: true;\n};\n\nexport const Globals = {};\nexport const StaticProperties = {};\nexport const InstanceProperties = {};\n\nconst lessThanArgs = num => (meta, path: NodePath) => {\n const { node, parent } = path;\n if (!t.isNewExpression(parent, { callee: node })) return false;\n if (parent.arguments.length >= num) return false;\n return parent.arguments.every(arg => !t.isSpreadElement(arg));\n};\n\nfor (const [name, causeArgNum] of [\n [\"Error\", 2],\n [\"AggregateError\", 3],\n [\"EvalError\", 2],\n [\"RangeError\", 2],\n [\"ReferenceError\", 2],\n [\"SyntaxError\", 2],\n [\"TypeError\", 2],\n [\"URIError\", 2],\n] as [string, number][]) {\n defineGlobal(name, \"1.0.1\", \"error-cause\", {\n exclude: lessThanArgs(causeArgNum),\n subfolder: name,\n polyfillName: \"Error cause\",\n });\n}\n// This needs to come after the AggregateError cause polyfill, since this\n// one polyfills less features.\ndefineGlobal(\"AggregateError\", \"1.0.2\", \"es-aggregate-error\");\nconst DATE_VERSION = \"2.0.0\";\n// MISSING DATA: defineGlobal(\"Date\", DATE_VERSION, \"date\", { subfolder: \"Date\" });\ndefineGlobal(\"globalThis\", \"1.0.0\");\ndefineGlobal(\"parseInt\", \"2.0.0\");\n\ndefineGlobal(\"Map\", \"1.0.4\", \"es-map\");\ndefineGlobal(\"Set\", \"1.1.0\", \"es-set\");\n\nconst arrayCheck = thisObj => expr`Array.isArray(${thisObj})`;\nconst typeofCheck = type => thisObj => expr`typeof ${thisObj} === \"${type}\"`;\nconst instanceofCheck = Class => thisObj =>\n expr`${thisObj} instanceof ${t.identifier(Class)}`;\nconst stringCheck = typeofCheck(\"string\");\n// const setCheck = instanceofCheck(\"Set\");\n\nconst getter = { getter: true };\nconst excludeStatic = obj => ({\n exclude: meta =>\n meta.kind === \"property\" &&\n meta.placement === \"static\" &&\n meta.object === obj,\n});\nconst excludeObject = excludeStatic(\"Object\");\n\ndefineStatic(\"Array\", \"from\", \"1.1.0\");\ndefineStatic(\"Array\", \"of\", \"1.0.0\");\ndefineInstance(\"Array\", \"at\", \"1.0.0\", arrayCheck);\ndefineInstance(\"Array\", \"concat\", \"1.0.2\", arrayCheck);\ndefineInstance(\"Array\", \"copyWithin\", \"1.0.0\", arrayCheck);\ndefineInstance(\"Array\", \"entries\", \"1.0.0\", arrayCheck, excludeObject);\ndefineInstance(\"Array\", \"every\", \"1.1.0\", arrayCheck);\ndefineInstance(\"Array\", \"filter\", \"1.0.0\", arrayCheck);\ndefineInstance(\"Array\", \"find\", \"2.1.1\", arrayCheck);\ndefineInstance(\"Array\", \"findIndex\", \"2.1.0\", arrayCheck);\ndefineInstance(\"Array\", \"findLast\", \"1.0.0\", arrayCheck);\ndefineInstance(\"Array\", \"findLastIndex\", \"1.0.0\", arrayCheck);\ndefineInstance(\"Array\", \"flat\", \"1.2.3\", arrayCheck);\ndefineInstance(\"Array\", \"flatMap\", \"1.2.3\", arrayCheck);\ndefineInstance(\"Array\", \"includes\", \"3.1.1\", arrayCheck, {\n pkg: \"array-includes\",\n});\ndefineInstance(\"Array\", \"indexOf\", \"1.0.1\", arrayCheck);\n// MISSING DATA: defineInstance(\"Array\", \"join\", \"1.0.0\", arrayCheck);\ndefineInstance(\"Array\", \"keys\", \"1.0.0\", arrayCheck, excludeObject);\ndefineInstance(\"Array\", \"lastIndexOf\", \"1.0.0\", arrayCheck);\ndefineInstance(\"Array\", \"map\", \"1.0.2\", arrayCheck);\ndefineInstance(\"Array\", \"reduce\", \"1.0.1\", arrayCheck);\ndefineInstance(\"Array\", \"reduceRight\", \"1.0.1\", arrayCheck);\n// MISSING DATA: defineInstance(\"Array\", \"slice\", \"1.0.0\", arrayCheck);\ndefineInstance(\"Array\", \"some\", \"1.1.1\", arrayCheck);\ndefineInstance(\"Array\", \"splice\", \"1.0.1\", arrayCheck);\ndefineInstance(\"Array\", \"toReversed\", \"1.0.1\", arrayCheck);\ndefineInstance(\"Array\", \"toSorted\", \"1.0.0\", arrayCheck);\ndefineInstance(\"Array\", \"toSpliced\", \"1.0.0\", arrayCheck);\ndefineInstance(\"Array\", \"unshift\", \"1.0.0\", arrayCheck);\ndefineInstance(\"Array\", \"values\", \"1.0.0\", arrayCheck, excludeObject);\ndefineInstance(\"Array\", \"with\", \"1.0.1\", arrayCheck);\n\nfor (const name of [\n \"now\",\n // MISSING DATA: \"parse\"\n]) {\n defineStatic(\"Date\", name, DATE_VERSION, {\n pkg: \"date\",\n subfolder: `Date.${name}`,\n });\n}\nfor (const name of [\n // MISSING DATA: \"getFullYear\",\n // MISSING DATA: \"getMonth\",\n // MISSING DATA: \"getDate\",\n // MISSING DATA: \"getUTCDate\",\n // MISSING DATA: \"getUTCFullYear\",\n // MISSING DATA: \"getUTCMonth\",\n // MISSING DATA: \"toUTCString\",\n // MISSING DATA: \"toDateString\",\n // MISSING DATA: \"toString\",\n \"toISOString\",\n \"toJSON\",\n]) {\n defineInstance(\"Date\", name, DATE_VERSION, instanceofCheck(\"Date\"), {\n pkg: \"date\",\n subfolder: `Date.prototype.${name}`,\n });\n}\n\ndefineInstance(\"Function\", \"name\", \"1.1.2\", typeofCheck(\"function\"), getter);\n\ndefineStatic(\"Math\", \"acosh\", \"1.0.0\");\ndefineStatic(\"Math\", \"atanh\", \"1.0.0\");\ndefineStatic(\"Math\", \"clz32\", \"1.0.0\");\ndefineStatic(\"Math\", \"cbrt\", \"1.0.0\");\ndefineStatic(\"Math\", \"fround\", \"1.0.0\");\ndefineStatic(\"Math\", \"log1p\", \"1.0.1\");\ndefineStatic(\"Math\", \"sign\", \"2.0.0\");\n\ndefineStatic(\"Number\", \"isFinite\", \"1.0.0\");\ndefineStatic(\"Number\", \"isInteger\", \"1.0.0\");\ndefineStatic(\"Number\", \"isSafeInteger\", \"1.0.0\");\ndefineStatic(\"Number\", \"isNaN\", \"1.0.0\", { pkg: \"number.isnan\" });\ndefineStatic(\"Number\", \"parseFloat\", \"1.0.0\");\ndefineStatic(\"Number\", \"parseInt\", \"1.0.0\");\n\ndefineStatic(\"Object\", \"assign\", \"4.1.0\");\ndefineStatic(\"Object\", \"defineProperties\", \"1.0.0\");\ndefineStatic(\"Object\", \"entries\", \"1.1.1\");\ndefineStatic(\"Object\", \"fromEntries\", \"2.0.2\");\ndefineStatic(\"Object\", \"hasOwn\", \"1.0.0\");\ndefineStatic(\"Object\", \"is\", \"1.1.2\", { pkg: \"object-is\" });\ndefineStatic(\"Object\", \"getOwnPropertyDescriptors\", \"2.1.0\");\ndefineStatic(\"Object\", \"getPrototypeOf\", \"1.0.1\");\ndefineStatic(\"Object\", \"values\", \"1.1.1\");\n\ndefineStatic(\"Promise\", \"allSettled\", \"1.0.2\");\ndefineStatic(\"Promise\", \"any\", \"2.0.1\");\ndefineStatic(\"Promise\", \"try\", \"1.0.0\");\ndefineInstance(\"Promise\", \"finally\", \"1.2.1\", instanceofCheck(\"Promise\"));\n\ndefineStatic(\"Reflect\", \"apply\", \"1.0.0\");\ndefineStatic(\"Reflect\", \"ownKeys\", \"1.0.1\");\ndefineStatic(\"Reflect\", \"getPrototypeOf\", \"1.0.0\");\n\ndefineInstance(\"RegExp\", \"flags\", \"1.3.0\", instanceofCheck(\"RegExp\"), getter);\n\n// TODO: Uncomment when Stage 4\n// defineInstance(\"Set\", \"difference\", \"1.0.2\", setCheck);\n// defineInstance(\"Set\", \"intersection\", \"1.0.2\", setCheck);\n// defineInstance(\"Set\", \"isDisjointFrom\", \"1.0.2\", setCheck);\n// defineInstance(\"Set\", \"isSubsetOf\", \"1.0.2\", setCheck);\n// defineInstance(\"Set\", \"isSupersetOf\", \"1.0.2\", setCheck);\n// defineInstance(\"Set\", \"symmetricDifference\", \"1.0.2\", setCheck);\n// defineInstance(\"Set\", \"union\", \"1.0.2\", setCheck);\n\ndefineStatic(\"String\", \"fromCodePoint\", \"1.0.0\");\ndefineStatic(\"String\", \"raw\", \"1.0.1\");\ndefineInstance(\"String\", \"codePoitAt\", \"1.0.0\", stringCheck);\ndefineInstance(\"String\", \"endsWith\", \"1.0.0\", stringCheck);\ndefineInstance(\"String\", \"includes\", \"2.0.0\", stringCheck);\ndefineInstance(\"String\", \"at\", \"1.0.0\", stringCheck);\ndefineInstance(\"String\", \"matchAll\", \"4.0.2\", stringCheck);\ndefineInstance(\"String\", \"padEnd\", \"1.1.1\", stringCheck);\ndefineInstance(\"String\", \"padStart\", \"3.1.0\", stringCheck);\ndefineInstance(\"String\", \"repeat\", \"1.0.0\", stringCheck);\ndefineInstance(\"String\", \"replaceAll\", \"1.0.3\", stringCheck);\ndefineInstance(\n \"String\",\n \"split\",\n \"1.0.1\",\n stringCheck,\n excludeStatic(\"Symbol\"),\n);\ndefineInstance(\"String\", \"startsWith\", \"1.0.0\", stringCheck);\ndefineInstance(\"String\", \"substr\", \"1.0.0\", stringCheck);\ndefineInstance(\"String\", \"trim\", \"1.2.1\", stringCheck);\ndefineInstance(\"String\", \"trimEnd\", \"1.0.0\", stringCheck);\ndefineInstance(\"String\", \"trimLeft\", \"2.1.1\", stringCheck);\ndefineInstance(\"String\", \"trimRight\", \"2.1.1\", stringCheck);\ndefineInstance(\"String\", \"trimStart\", \"1.0.0\", stringCheck);\n\ndefineInstance(\n \"Symbol\",\n \"description\",\n \"1.0.2\",\n instanceofCheck(\"Symbol\"),\n getter,\n);\n\n// Annex B\nfor (const name of [\n \"anchor\",\n \"big\",\n \"blink\",\n \"bold\",\n \"fixed\",\n \"fontcolor\",\n \"fontsize\",\n \"italics\",\n \"link\",\n \"small\",\n \"strike\",\n \"sub\",\n \"sup\",\n]) {\n defineInstance(\"String\", name, \"1.0.0\", stringCheck, {\n pkg: `es-string-html-methods`,\n subfolder: name,\n });\n}\n\nfunction createDescriptor(name, version, pkg = name.toLowerCase(), subfolder?) {\n return {\n name,\n version,\n package: pkg,\n path: subfolder ? `${pkg}/${subfolder}` : pkg,\n };\n}\n\ntype ExcludeFilter = (meta: MetaDescriptor, path: NodePath) => boolean;\n\nfunction defineGlobal(\n name,\n version,\n pkg?,\n {\n exclude,\n subfolder,\n polyfillName = name,\n }: {\n exclude?: ExcludeFilter;\n subfolder?: string;\n polyfillName?: string;\n } = {},\n) {\n if (!has(Globals, name)) Globals[name] = [];\n Globals[name].push({\n ...createDescriptor(polyfillName, version, pkg, subfolder),\n exclude,\n nameHint: name,\n });\n}\n\nfunction defineStatic(\n object,\n property,\n version,\n { pkg, subfolder }: { pkg?: string; subfolder?: string } = {},\n) {\n if (!has(StaticProperties, object)) StaticProperties[object] = {};\n\n StaticProperties[object][property] = [\n createDescriptor(`${object}.${property}`, version, pkg, subfolder),\n ];\n}\n\nfunction defineInstance(\n object,\n property,\n version,\n thisCheck,\n {\n getter = false,\n exclude,\n pkg,\n subfolder,\n }: {\n getter?: boolean;\n exclude?: ExcludeFilter;\n pkg?: string;\n subfolder?: string;\n } = {},\n) {\n if (!has(InstanceProperties, property)) InstanceProperties[property] = [];\n\n InstanceProperties[property].push({\n ...createDescriptor(\n `${object}.prototype.${property}`,\n version,\n pkg,\n subfolder,\n ),\n thisCheck,\n exclude,\n getter,\n });\n}\n","import defineProvider, {\n type Utils,\n type MetaDescriptor,\n} from \"@babel/helper-define-polyfill-provider\";\nimport type { NodePath } from \"@babel/traverse\";\n\nimport polyfills from \"../data/polyfills.js\";\n\nimport {\n type Descriptor,\n Globals,\n StaticProperties,\n InstanceProperties,\n} from \"./mappings\";\n\nexport default defineProvider<{}>(function ({\n shouldInjectPolyfill,\n assertDependency,\n createMetaResolver,\n debug,\n babel: { template, types: t },\n}) {\n const expr = template.expression.ast;\n\n const resolvePolyfill = createMetaResolver<Descriptor[]>({\n global: Globals,\n static: StaticProperties,\n instance: InstanceProperties,\n });\n\n function createDescIterator(\n cb: (desc: Descriptor, utils: Utils, path: NodePath) => void,\n instance?: (\n meta: MetaDescriptor,\n resolved: any,\n utils: Utils,\n path: any,\n ) => void,\n ) {\n return (meta: MetaDescriptor, utils: Utils, path: NodePath) => {\n if (path.parentPath.isUnaryExpression({ operator: \"delete\" })) return;\n\n const resolved = resolvePolyfill(meta);\n if (!resolved) return;\n\n if (instance && resolved.kind === \"instance\") {\n instance(meta, resolved, utils, path);\n return;\n }\n\n for (const desc of resolved.desc) {\n if (!desc.exclude?.(meta, path) && shouldInjectPolyfill(desc.name)) {\n cb(desc, utils, path);\n\n // Since global and static polyfills are unambiguous, we only need to\n // inject the first non-excluded one.\n if (resolved.kind !== \"instance\") {\n break;\n }\n }\n }\n };\n }\n\n function injectDefault(desc, utils) {\n assertDependency(desc.package, desc.version);\n debug(desc.name);\n\n return utils.injectDefaultImport(desc.path, desc.nameHint || desc.name);\n }\n\n const seen = new WeakSet();\n\n return {\n name: \"es-shims\",\n polyfills,\n\n usageGlobal: createDescIterator((desc, utils) => {\n if (desc.global === false) return;\n\n assertDependency(desc.package, desc.version);\n\n utils.injectGlobalImport(`${desc.path}/auto`);\n\n debug(desc.name);\n }),\n\n usagePure: createDescIterator(\n (desc, utils, path) => {\n path.replaceWith(injectDefault(desc, utils));\n },\n (meta, resolved, utils, path) => {\n if (meta.kind !== \"property\") return;\n if (path.parentPath.isAssignmentExpression({ left: path.node })) return;\n\n if (seen.has(path.node)) return;\n seen.add(path.node);\n\n const isCall = path.parentPath.isCallExpression({ callee: path.node });\n const isGetter = resolved.desc[0].getter;\n\n const matchesPolyfill = ({ name }) =>\n name.startsWith(meta.object as any as string);\n\n let index = -1;\n if (\n // This is the actual method for sure.\n meta.kind === \"property\" &&\n meta.placement === \"prototype\" &&\n meta.object != null &&\n (index = resolved.desc.findIndex(matchesPolyfill)) !== -1\n ) {\n const desc = resolved.desc[index];\n if (!shouldInjectPolyfill(desc.name)) return;\n\n const id = injectDefault(desc, utils);\n\n if (isGetter) {\n path.replaceWith(expr`${id}(${path.node.object})`);\n } else if (isCall) {\n path.parentPath.unshiftContainer(\"arguments\", path.node.object);\n path.replaceWith(id);\n } else if (\n path.parentPath.isMemberExpression({\n object: path.node,\n computed: false,\n }) &&\n path.parent.property.name === \"call\" &&\n path.parentPath.parentPath.isCallExpression({ callee: path.parent })\n ) {\n path.parentPath.replaceWith(id);\n } else {\n path.replaceWith(expr`${id}.getPolyfill()`);\n }\n } else {\n let tmp;\n let parent;\n let replacement = path.node;\n const { object } = path.node;\n\n for (const desc of resolved.desc) {\n const { thisCheck } = desc;\n if (\n !thisCheck ||\n desc.exclude?.(meta) ||\n !shouldInjectPolyfill(desc.name)\n ) {\n continue;\n }\n\n if (!tmp) {\n tmp = path.scope.generateUidIdentifierBasedOnNode(object);\n path.scope.push({ id: t.cloneNode(tmp) });\n path.get(\"object\").replaceWith(tmp);\n }\n\n const id = injectDefault(desc, utils);\n\n replacement = t.conditionalExpression(\n thisCheck(t.cloneNode(tmp)),\n isGetter\n ? expr`${id}(${t.cloneNode(tmp)})`\n : isCall\n ? id\n : expr`${id}.getPolyfill()`,\n replacement,\n );\n\n parent = parent ?? replacement;\n }\n\n if (!parent) return;\n\n replacement = expr`(${t.cloneNode(tmp)} = ${object}, ${replacement})`;\n\n if (!isGetter && isCall) {\n parent.alternate = expr`Function.call.bind(${parent.alternate})`;\n path.parentPath.unshiftContainer(\"arguments\", t.cloneNode(tmp));\n }\n\n path.replaceWith(replacement);\n }\n },\n ),\n };\n});\n"],"names":["types","t","template","expr","expression","ast","has","Function","call","bind","Object","hasOwnProperty","Globals","StaticProperties","InstanceProperties","lessThanArgs","num","meta","path","node","parent","isNewExpression","callee","arguments","length","every","arg","isSpreadElement","name","causeArgNum","defineGlobal","exclude","subfolder","polyfillName","DATE_VERSION","arrayCheck","thisObj","typeofCheck","type","instanceofCheck","Class","identifier","stringCheck","getter","excludeStatic","obj","kind","placement","object","excludeObject","defineStatic","defineInstance","pkg","createDescriptor","version","toLowerCase","package","push","nameHint","property","thisCheck","defineProvider","shouldInjectPolyfill","assertDependency","createMetaResolver","debug","babel","resolvePolyfill","global","static","instance","createDescIterator","cb","utils","parentPath","isUnaryExpression","operator","resolved","desc","injectDefault","injectDefaultImport","seen","WeakSet","polyfills","usageGlobal","injectGlobalImport","usagePure","replaceWith","isAssignmentExpression","left","add","isCall","isCallExpression","isGetter","matchesPolyfill","startsWith","index","findIndex","id","unshiftContainer","isMemberExpression","computed","tmp","replacement","scope","generateUidIdentifierBasedOnNode","cloneNode","get","conditionalExpression","alternate"],"mappings":"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"}
|
package/lib/mappings.js
CHANGED
|
@@ -51,6 +51,8 @@ const DATE_VERSION = "2.0.0"; // MISSING DATA: defineGlobal("Date", DATE_VERSION
|
|
|
51
51
|
|
|
52
52
|
defineGlobal("globalThis", "1.0.0");
|
|
53
53
|
defineGlobal("parseInt", "2.0.0");
|
|
54
|
+
defineGlobal("Map", "1.0.4", "es-map");
|
|
55
|
+
defineGlobal("Set", "1.1.0", "es-set");
|
|
54
56
|
|
|
55
57
|
const arrayCheck = thisObj => expr`Array.isArray(${thisObj})`;
|
|
56
58
|
|
|
@@ -58,7 +60,8 @@ const typeofCheck = type => thisObj => expr`typeof ${thisObj} === "${type}"`;
|
|
|
58
60
|
|
|
59
61
|
const instanceofCheck = Class => thisObj => expr`${thisObj} instanceof ${t.identifier(Class)}`;
|
|
60
62
|
|
|
61
|
-
const stringCheck = typeofCheck("string");
|
|
63
|
+
const stringCheck = typeofCheck("string"); // const setCheck = instanceofCheck("Set");
|
|
64
|
+
|
|
62
65
|
const getter = {
|
|
63
66
|
getter: true
|
|
64
67
|
};
|
|
@@ -160,7 +163,15 @@ defineInstance("Promise", "finally", "1.2.1", instanceofCheck("Promise"));
|
|
|
160
163
|
defineStatic("Reflect", "apply", "1.0.0");
|
|
161
164
|
defineStatic("Reflect", "ownKeys", "1.0.1");
|
|
162
165
|
defineStatic("Reflect", "getPrototypeOf", "1.0.0");
|
|
163
|
-
defineInstance("RegExp", "flags", "1.3.0", instanceofCheck("RegExp"), getter);
|
|
166
|
+
defineInstance("RegExp", "flags", "1.3.0", instanceofCheck("RegExp"), getter); // TODO: Uncomment when Stage 4
|
|
167
|
+
// defineInstance("Set", "difference", "1.0.2", setCheck);
|
|
168
|
+
// defineInstance("Set", "intersection", "1.0.2", setCheck);
|
|
169
|
+
// defineInstance("Set", "isDisjointFrom", "1.0.2", setCheck);
|
|
170
|
+
// defineInstance("Set", "isSubsetOf", "1.0.2", setCheck);
|
|
171
|
+
// defineInstance("Set", "isSupersetOf", "1.0.2", setCheck);
|
|
172
|
+
// defineInstance("Set", "symmetricDifference", "1.0.2", setCheck);
|
|
173
|
+
// defineInstance("Set", "union", "1.0.2", setCheck);
|
|
174
|
+
|
|
164
175
|
defineStatic("String", "fromCodePoint", "1.0.0");
|
|
165
176
|
defineStatic("String", "raw", "1.0.1");
|
|
166
177
|
defineInstance("String", "codePoitAt", "1.0.0", stringCheck);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "babel-plugin-polyfill-es-shims",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"description": "A Babel plugin to inject imports to es-shims polyfills",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"babel-plugin"
|
|
27
27
|
],
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@babel/helper-define-polyfill-provider": "^0.
|
|
29
|
+
"@babel/helper-define-polyfill-provider": "^0.4.0"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@babel/core": "^7.17.8",
|
|
@@ -37,5 +37,5 @@
|
|
|
37
37
|
"peerDependencies": {
|
|
38
38
|
"@babel/core": "^7.0.0-0"
|
|
39
39
|
},
|
|
40
|
-
"gitHead": "
|
|
40
|
+
"gitHead": "391a1f4049fe1d6943ca8e91cf7e2e23f3f1ef73"
|
|
41
41
|
}
|