From dd0d1d77529383a75d1e88463cad2763ec5f7010 Mon Sep 17 00:00:00 2001 From: Guy Bedford Date: Wed, 28 Oct 2020 13:19:30 -0700 Subject: [PATCH] handle yield ambiguity --- lexer.js | 3 --- src/lexer.c | 3 --- test/_unit.js | 15 +++++++++++++++ 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/lexer.js b/lexer.js index 8cd9b68..961ab7a 100755 --- a/lexer.js +++ b/lexer.js @@ -1126,9 +1126,6 @@ function isExpressionKeyword (pos) { case 105/*i*/: // void return readPrecedingKeyword(pos - 2, 'vo'); - case 108/*l*/: - // yield - return readPrecedingKeyword(pos - 2, 'yie'); default: return false; } diff --git a/src/lexer.c b/src/lexer.c index c17b44e..6a844a2 100755 --- a/src/lexer.c +++ b/src/lexer.c @@ -1214,9 +1214,6 @@ bool isExpressionKeyword (uint16_t* pos) { case 'i': // void return readPrecedingKeyword2(pos - 2, 'v', 'o'); - case 'l': - // yield - return readPrecedingKeyword3(pos - 2, 'y', 'i', 'e'); default: return false; } diff --git a/test/_unit.js b/test/_unit.js index f46dc7e..00656ab 100755 --- a/test/_unit.js +++ b/test/_unit.js @@ -660,4 +660,19 @@ function x() { assert.ok(exports[0] === 'a'); assert.ok(exports[1] === 'b'); }); + + test('Yield ambiguity case', () => { + var { exports, reexports } = parse(` + function* fn() { + yield / "/ //" /* + } + /*/ + } + + module.exports.foo = 2; + + // */ + `); + assert.equal(exports.length, 1); + }); });