From 71fd37067edb11e48710c5d5295a8f04102b458f Mon Sep 17 00:00:00 2001 From: James DiGioia Date: Thu, 26 Apr 2018 18:21:24 -0400 Subject: [PATCH] Avoid lookahead when parsing pipeline The error message is worse, but it is much more performant. --- packages/babylon/src/parser/expression.js | 9 --------- .../pipeline-operator/arrow-requires-parens/options.json | 2 +- 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/packages/babylon/src/parser/expression.js b/packages/babylon/src/parser/expression.js index 8ff8763723..47d5b1d15f 100644 --- a/packages/babylon/src/parser/expression.js +++ b/packages/babylon/src/parser/expression.js @@ -310,15 +310,6 @@ export default class ExpressionParser extends LValParser { const startLoc = this.state.startLoc; if (op === tt.pipeline) { - const lookahead = this.lookahead(); - - if (lookahead.type === tt.arrow) { - throw this.raise( - this.state.start, - `Unexpected arrow "=>" after pipeline body; arrow function in pipeline body must be parenthesized`, // eslint-disable-line - ); - } - if ( this.match(tt.name) && this.state.value === "await" && diff --git a/packages/babylon/test/fixtures/experimental/pipeline-operator/arrow-requires-parens/options.json b/packages/babylon/test/fixtures/experimental/pipeline-operator/arrow-requires-parens/options.json index 0ca16f7596..6f196466a4 100644 --- a/packages/babylon/test/fixtures/experimental/pipeline-operator/arrow-requires-parens/options.json +++ b/packages/babylon/test/fixtures/experimental/pipeline-operator/arrow-requires-parens/options.json @@ -1,4 +1,4 @@ { "plugins": ["pipelineOperator"], - "throws": "Unexpected arrow \"=>\" after pipeline body; arrow function in pipeline body must be parenthesized (1:6)" + "throws": "Unexpected token, expected \";\" (1:8)" }