diff --git a/packages/babel-core/src/config/validation/options.js b/packages/babel-core/src/config/validation/options.js index 69d25f1db6f7..507b183fa07a 100644 --- a/packages/babel-core/src/config/validation/options.js +++ b/packages/babel-core/src/config/validation/options.js @@ -332,25 +332,9 @@ type EnvPath = $ReadOnly<{ export type NestingPath = RootPath | OverridesPath | EnvPath; export const assumptionsNames = new Set([ - "arrayLikeIsIterable", - "arrayIndexedIteration", - "copyReexports", - "ignoreFunctionLength", - "ignoreToPrimitiveHint", - "inheritsAsObjectCreate", - "iterableIsArray", "mutableTemplateObject", "newableArrowFunctions", - "noDocumentAll", - "objectRestNoSymbols", - "privateFieldsAsPublic", - "setClassMethods", - "setComputedProperties", - "setModuleMeta", "setPublicClassFields", - "setSpreadProperties", - "skipForOfIterationClosing", - "superAsFunctionCall", ]); function getSource(loc: NestingPath): OptionsSource { diff --git a/packages/babel-core/test/assumptions.js b/packages/babel-core/test/assumptions.js index a4e62b481f51..ad23adae50a7 100644 --- a/packages/babel-core/test/assumptions.js +++ b/packages/babel-core/test/assumptions.js @@ -34,11 +34,11 @@ describe("assumptions", () => { assumptions: { setPublicClassFields: true, }, - presets: [() => ({ assumptions: { setClassMethods: true } })], + presets: [() => ({ assumptions: { mutableTemplateObject: true } })], }).assumptions, ).toEqual({ setPublicClassFields: true, - setClassMethods: true, + mutableTemplateObject: true, // This is enabled by default newableArrowFunctions: true, }); @@ -93,7 +93,6 @@ describe("assumptions", () => { const makePlugin = () => jest.fn(api => { api.assumption("setPublicClassFields"); - api.assumption("mutableTemplateObject"); return {}; }); @@ -110,11 +109,11 @@ describe("assumptions", () => { run(plugin, { setPublicClassFields: true, - setClassMethods: false, + mutableTemplateObject: false, }); run(plugin, { setPublicClassFields: true, - setClassMethods: false, + mutableTemplateObject: false, }); expect(plugin).toHaveBeenCalledTimes(1); @@ -125,11 +124,11 @@ describe("assumptions", () => { run(plugin, { setPublicClassFields: true, - setClassMethods: false, + mutableTemplateObject: false, }); run(plugin, { setPublicClassFields: true, - setClassMethods: true, + mutableTemplateObject: true, }); expect(plugin).toHaveBeenCalledTimes(1); @@ -140,11 +139,11 @@ describe("assumptions", () => { run(plugin, { setPublicClassFields: true, - setClassMethods: false, + mutableTemplateObject: false, }); run(plugin, { setPublicClassFields: false, - setClassMethods: true, + mutableTemplateObject: true, }); expect(plugin).toHaveBeenCalledTimes(2); @@ -154,13 +153,11 @@ describe("assumptions", () => { const plugin = makePlugin(); run(plugin, { - setPublicClassFields: true, - setClassMethods: false, + mutableTemplateObject: false, }); run(plugin, { - setPublicClassFields: false, - setClassMethods: true, - mutableTemplateObject: true, + mutableTemplateObject: false, + setPublicClassFields: true, }); expect(plugin).toHaveBeenCalledTimes(2); @@ -171,10 +168,10 @@ describe("assumptions", () => { run(plugin, { setPublicClassFields: true, - setClassMethods: false, + mutableTemplateObject: false, }); run(plugin, { - setClassMethods: true, + mutableTemplateObject: true, }); expect(plugin).toHaveBeenCalledTimes(2); diff --git a/packages/babel-helper-plugin-utils/src/index.js b/packages/babel-helper-plugin-utils/src/index.js index e381cebd76e3..2614b7e8ea4d 100644 --- a/packages/babel-helper-plugin-utils/src/index.js +++ b/packages/babel-helper-plugin-utils/src/index.js @@ -2,12 +2,12 @@ export function declare(builder) { return (api, options, dirname) => { let clonedApi; - for (const [name, create] of Object.entries(apiPolyfills)) { + for (const [name] of Object.keys(apiPolyfills)) { if (api[name]) continue; // TODO: Use ??= when flow lets us to do so clonedApi = clonedApi ?? copyApiObject(api); - clonedApi[name] = create(clonedApi); + clonedApi[name] = apiPolyfills[name](clonedApi); } return builder(clonedApi ?? api, options || {}, dirname);