From 7c9237d15829a97190c6d4f19e597eedb7bfb0f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hu=C3=A1ng=20J=C3=B9nli=C3=A0ng?= Date: Thu, 16 Sep 2021 16:27:33 -0400 Subject: [PATCH] fix flow errors --- packages/babel-parser/src/parser/util.js | 5 ++++- packages/babel-parser/src/tokenizer/types.js | 4 ++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/babel-parser/src/parser/util.js b/packages/babel-parser/src/parser/util.js index e128a30acd87..0ff740686c4d 100644 --- a/packages/babel-parser/src/parser/util.js +++ b/packages/babel-parser/src/parser/util.js @@ -1,6 +1,7 @@ // @flow import { + isTokenType, tokenIsKeyword, tokenLabelName, tt, @@ -173,17 +174,19 @@ export default class UtilParser extends Tokenizer { template: "Unexpected token", }, ): empty { - if (typeof messageOrType === "number") { + if (isTokenType(messageOrType)) { messageOrType = { code: ErrorCodes.SyntaxError, reasonCode: "UnexpectedToken", template: `Unexpected token, expected "${tokenLabelName( + // $FlowIgnore: Flow does not support assertion signature and TokenType is opaque messageOrType, )}"`, }; } /* eslint-disable @babel/development-internal/dry-error-messages */ + // $FlowIgnore: Flow does not support assertion signature and TokenType is opaque throw this.raise(pos != null ? pos : this.state.start, messageOrType); /* eslint-enable @babel/development-internal/dry-error-messages */ } diff --git a/packages/babel-parser/src/tokenizer/types.js b/packages/babel-parser/src/tokenizer/types.js index 335e8bd53562..e58f2b7d5ca6 100644 --- a/packages/babel-parser/src/tokenizer/types.js +++ b/packages/babel-parser/src/tokenizer/types.js @@ -306,6 +306,10 @@ export function getExportedToken(token: TokenType): ExportedTokenType { return tokenTypes[token]; } +export function isTokenType(obj: any): boolean { + return typeof obj === "number"; +} + if (!process.env.BABEL_8_BREAKING) { tokenTypes[tt.braceR].updateContext = context => { context.pop();