From 10058901d0703a9f2a4882c4d16c77d10d2145eb Mon Sep 17 00:00:00 2001 From: Justin Ridgewell Date: Mon, 16 Mar 2020 11:30:38 -0400 Subject: [PATCH] Update Purish aliases (#11267) * Update Purish aliases - Adds `Purish` to `RegexLiteral`, since it can't cause any side-effects. - Removes `Purish` from `ClassExpression` and `ClassDeclaration`, since they can be impure with static class fields. * Update types --- packages/babel-types/src/definitions/core.js | 2 +- packages/babel-types/src/definitions/es2015.js | 4 ++-- packages/babel-types/src/validators/generated/index.js | 3 +-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/packages/babel-types/src/definitions/core.js b/packages/babel-types/src/definitions/core.js index 9461e36d3cc2..e7ba6f05d8a2 100644 --- a/packages/babel-types/src/definitions/core.js +++ b/packages/babel-types/src/definitions/core.js @@ -568,7 +568,7 @@ defineType("BooleanLiteral", { defineType("RegExpLiteral", { builder: ["pattern", "flags"], deprecatedAlias: "RegexLiteral", - aliases: ["Expression", "Literal"], + aliases: ["Expression", "Pureish", "Literal"], fields: { pattern: { validate: assertValueType("string"), diff --git a/packages/babel-types/src/definitions/es2015.js b/packages/babel-types/src/definitions/es2015.js index 853af1b12e65..e907dc45d6ac 100644 --- a/packages/babel-types/src/definitions/es2015.js +++ b/packages/babel-types/src/definitions/es2015.js @@ -124,7 +124,7 @@ defineType("ClassExpression", { "implements", "decorators", ], - aliases: ["Scopable", "Class", "Expression", "Pureish"], + aliases: ["Scopable", "Class", "Expression"], fields: { id: { validate: assertNodeType("Identifier"), @@ -175,7 +175,7 @@ defineType("ClassExpression", { defineType("ClassDeclaration", { inherits: "ClassExpression", - aliases: ["Scopable", "Class", "Statement", "Declaration", "Pureish"], + aliases: ["Scopable", "Class", "Statement", "Declaration"], fields: { declare: { validate: assertValueType("boolean"), diff --git a/packages/babel-types/src/validators/generated/index.js b/packages/babel-types/src/validators/generated/index.js index 56c6193832c7..7ddf2fa31560 100644 --- a/packages/babel-types/src/validators/generated/index.js +++ b/packages/babel-types/src/validators/generated/index.js @@ -3847,9 +3847,8 @@ export function isPureish(node: ?Object, opts?: Object): boolean { "NumericLiteral" === nodeType || "NullLiteral" === nodeType || "BooleanLiteral" === nodeType || + "RegExpLiteral" === nodeType || "ArrowFunctionExpression" === nodeType || - "ClassExpression" === nodeType || - "ClassDeclaration" === nodeType || "BigIntLiteral" === nodeType || (nodeType === "Placeholder" && "StringLiteral" === node.expectedNode) ) {