From 096c337429b6a6ecee99bbbd696f3f106439bee5 Mon Sep 17 00:00:00 2001 From: Justin Ridgewell Date: Wed, 24 Jul 2019 00:52:20 -0400 Subject: [PATCH] Add generated type helpers --- .../babel-types/scripts/utils/formatBuilderName.js | 3 ++- .../babel-types/src/asserts/generated/index.js | 6 ++++++ .../babel-types/src/builders/generated/index.js | 4 ++++ .../babel-types/src/validators/generated/index.js | 14 ++++++++++++++ 4 files changed, 26 insertions(+), 1 deletion(-) diff --git a/packages/babel-types/scripts/utils/formatBuilderName.js b/packages/babel-types/scripts/utils/formatBuilderName.js index 1b543a9bfaf5..621c46821951 100644 --- a/packages/babel-types/scripts/utils/formatBuilderName.js +++ b/packages/babel-types/scripts/utils/formatBuilderName.js @@ -5,5 +5,6 @@ const toLowerCase = Function.call.bind("".toLowerCase); module.exports = function formatBuilderName(type) { // FunctionExpression -> functionExpression // JSXIdentifier -> jsxIdentifier - return type.replace(/^([A-Z](?=[a-z])|[A-Z]+(?=[A-Z]))/, toLowerCase); + // V8IntrinsicIdentifier -> v8IntrinsicIdentifier + return type.replace(/^([A-Z](?=[a-z0-9])|[A-Z]+(?=[A-Z]))/, toLowerCase); }; diff --git a/packages/babel-types/src/asserts/generated/index.js b/packages/babel-types/src/asserts/generated/index.js index 3a4e81d34700..8a50e1269bc2 100644 --- a/packages/babel-types/src/asserts/generated/index.js +++ b/packages/babel-types/src/asserts/generated/index.js @@ -663,6 +663,12 @@ export function assertNoop(node: Object, opts?: Object = {}): void { export function assertPlaceholder(node: Object, opts?: Object = {}): void { assert("Placeholder", node, opts); } +export function assertV8IntrinsicIdentifier( + node: Object, + opts?: Object = {}, +): void { + assert("V8IntrinsicIdentifier", node, opts); +} export function assertArgumentPlaceholder( node: Object, opts?: Object = {}, diff --git a/packages/babel-types/src/builders/generated/index.js b/packages/babel-types/src/builders/generated/index.js index e4ca375762cc..76b0c35c1ce8 100644 --- a/packages/babel-types/src/builders/generated/index.js +++ b/packages/babel-types/src/builders/generated/index.js @@ -600,6 +600,10 @@ export function Placeholder(...args: Array): Object { return builder("Placeholder", ...args); } export { Placeholder as placeholder }; +export function V8IntrinsicIdentifier(...args: Array): Object { + return builder("V8IntrinsicIdentifier", ...args); +} +export { V8IntrinsicIdentifier as v8IntrinsicIdentifier }; export function ArgumentPlaceholder(...args: Array): Object { return builder("ArgumentPlaceholder", ...args); } diff --git a/packages/babel-types/src/validators/generated/index.js b/packages/babel-types/src/validators/generated/index.js index 890999e5d0e1..c776c4f66618 100644 --- a/packages/babel-types/src/validators/generated/index.js +++ b/packages/babel-types/src/validators/generated/index.js @@ -2107,6 +2107,20 @@ export function isPlaceholder(node: ?Object, opts?: Object): boolean { return false; } +export function isV8IntrinsicIdentifier(node: ?Object, opts?: Object): boolean { + if (!node) return false; + + const nodeType = node.type; + if (nodeType === "V8IntrinsicIdentifier") { + if (typeof opts === "undefined") { + return true; + } else { + return shallowEqual(node, opts); + } + } + + return false; +} export function isArgumentPlaceholder(node: ?Object, opts?: Object): boolean { if (!node) return false;