From 524d847763fc0dbf4b7e61cf96abba4e56103bab Mon Sep 17 00:00:00 2001 From: Justin Ridgewell Date: Sat, 25 Aug 2018 20:02:32 -0400 Subject: [PATCH] Flatten TokenType class hierarchy (#8537) `KeywordTokenType` and `BinopTokenType` were just meant to be factory helpers, there's no reason for a class hierarchy. --- packages/babel-parser/src/tokenizer/types.js | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/packages/babel-parser/src/tokenizer/types.js b/packages/babel-parser/src/tokenizer/types.js index 050ca6c820..14e94d32ab 100644 --- a/packages/babel-parser/src/tokenizer/types.js +++ b/packages/babel-parser/src/tokenizer/types.js @@ -66,18 +66,12 @@ export class TokenType { } } -class KeywordTokenType extends TokenType { - constructor(name: string, options: TokenOptions = {}) { - options.keyword = name; - - super(name, options); - } +function KeywordTokenType(keyword: string, options: TokenOptions = {}) { + return new TokenType(keyword, { ...options, keyword }); } -export class BinopTokenType extends TokenType { - constructor(name: string, prec: number) { - super(name, { beforeExpr, binop: prec }); - } +function BinopTokenType(name: string, binop: number) { + return new TokenType(name, { beforeExpr, binop }); } export const types: { [name: string]: TokenType } = {