Skip to content

Commit

Permalink
fix(parser): dedupe some code
Browse files Browse the repository at this point in the history
  • Loading branch information
KFlash committed Jun 29, 2019
1 parent 68da76b commit 91e0233
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 12 deletions.
2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

50 changes: 39 additions & 11 deletions src/parser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,6 @@ export function parseSource(source: string, options: Options | void, context: Co
if (options.impliedStrict) context |= Context.Strict;
if (options.identifierPattern) context |= Context.OptionsIdentifierPattern;
if (options.source) sourceFile = options.source;
if (options.source) sourceFile = options.source;
}

// Initialize parser state
Expand Down Expand Up @@ -4661,7 +4660,7 @@ export function parseArrayExpressionOrPattern(
: 0 | (parser.destructible & DestructuringKind.Await)
? DestructuringKind.Await
: 0;
} else if (parser.token & Token.IsPatternStart) {
} else if (token & Token.IsPatternStart) {
left =
parser.token === Token.LeftBrace
? parseObjectLiteralOrPattern(parser, context, scope, 0, inGroup, type, origin, tokenIndex, linePos, colPos)
Expand Down Expand Up @@ -4704,7 +4703,7 @@ export function parseArrayExpressionOrPattern(
: DestructuringKind.AssignableDestruct;
}
}
} else if (parser.token === Token.Ellipsis) {
} else if (token === Token.Ellipsis) {
left = parseSpreadElement(
parser,
context,
Expand Down Expand Up @@ -4778,6 +4777,10 @@ export function parseArrayExpressionOrPattern(
* @param parser Parser object
* @param context Context masks
* @param destructible
* @param inGroup
* @param start Start index
* @param line Start line
* @param column Start of column
* @param node ESTree AST node
*/

Expand Down Expand Up @@ -4840,7 +4843,12 @@ function parseArrayOrObjectAssignmentPattern(
* @param context Context masks
* @param closingToken
* @param type Binding type
* @param origin Binding origin
* @param isAsync
* @param isGroup
* @param start Start index
* @param line Start line
* @param column Start of column
*/
function parseSpreadElement(
parser: ParserState,
Expand Down Expand Up @@ -5020,6 +5028,10 @@ function parseSpreadElement(
* @param parser Parser object
* @param context Context masks
* @param kind
* @param inGroup
* @param start Start index
* @param line Start line
* @param column Start of column
*/
export function parseMethodDefinition(
parser: ParserState,
Expand Down Expand Up @@ -5054,6 +5066,11 @@ export function parseMethodDefinition(
* @param parser Parser object
* @param context Context masks
* @param skipInitializer
* @param inGroup
* @param start Start index
* @param line Start line
* @param column Start of column
*/
function parseObjectLiteral(
parser: ParserState,
Expand Down Expand Up @@ -6076,6 +6093,8 @@ export function parseObjectLiteralOrPattern(
* @param parser parser object
* @param context context masks
* @param kind
* @param type Binding type
* @param inGroup
*/
export function parseMethodFormals(
parser: ParserState,
Expand Down Expand Up @@ -6243,6 +6262,10 @@ export function parseComputedPropertyName(parser: ParserState, context: Context,
* @param parser Parser object
* @param context Context masks
* @param assignable
* @param start Start index
* @param line Start line
* @param column Start of column
*/
export function parseParenthesizedExpression(
parser: ParserState,
Expand Down Expand Up @@ -6494,7 +6517,10 @@ export function parseParenthesizedExpression(
*
* @param parser Parser object
* @param context Context masks
* @param expr ESTree AST node
* @param start Start index
* @param line Start line
* @param column Start of column
*/
export function parseIdentifierOrArrow(
parser: ParserState,
Expand Down Expand Up @@ -6527,6 +6553,10 @@ export function parseIdentifierOrArrow(
* @param context Context masks
* @param params
* @param isAsync
* @param start Start index
* @param line Start line
* @param column Start of column
*/
export function parseArrowFunctionExpression(
parser: ParserState,
Expand Down Expand Up @@ -6802,9 +6832,7 @@ export function parseNewExpression(
// - `new (await foo);`
// - `new x(await foo);`
const id = parseIdentifier(parser, context | Context.AllowRegExp, 0, start, line, column);
const startIdx = parser.tokenIndex;
const lineIdx = parser.linePos;
const columnIdx = parser.colPos;
const { tokenIndex, linePos, colPos } = parser;

if (consumeOpt(parser, context, Token.Period)) {
if (context & Context.AllowNewTarget && parser.token === Token.Target) {
Expand All @@ -6822,12 +6850,12 @@ export function parseNewExpression(
0,
0,
inGroup,
startIdx,
lineIdx,
columnIdx
tokenIndex,
linePos,
colPos
);

callee = parseMemberOrUpdateExpression(parser, context, callee, 1, inGroup, startIdx, lineIdx, columnIdx);
callee = parseMemberOrUpdateExpression(parser, context, callee, 1, inGroup, tokenIndex, linePos, colPos);
parser.assignable = AssignmentKind.NotAssignable;
return finishNode(parser, context, start, line, column, {
type: 'NewExpression',
Expand Down

0 comments on commit 91e0233

Please sign in to comment.