diff --git a/acorn.js b/acorn.js index 5fd4225a2e..dc0ba6718a 100644 --- a/acorn.js +++ b/acorn.js @@ -1761,8 +1761,15 @@ next(); return finishNode(node, "ThisExpression"); + case _yield: + if (inGenerator) return parseYield(); + case _name: - var id = parseIdent(); + case _static: + case _from: + case _of: + case _as: + var id = parseIdent(tokType !== _name); if (eat(_arrow)) { return parseArrowExpression(startNodeFrom(id), [id]); } @@ -1865,9 +1872,6 @@ case _bquote: return parseTemplate(); - case _yield: - return inGenerator ? parseYield() : parseIdent(true); - default: unexpected(); } diff --git a/test/bench.html b/test/bench.html index 59c9fa2046..31494f6a1a 100644 --- a/test/bench.html +++ b/test/bench.html @@ -36,7 +36,7 @@ numbers.