diff options
-rw-r--r-- | Libraries/LibJS/Parser.cpp | 2 | ||||
-rw-r--r-- | Libraries/LibJS/Tests/arrow-functions.js | 3 |
2 files changed, 4 insertions, 1 deletions
diff --git a/Libraries/LibJS/Parser.cpp b/Libraries/LibJS/Parser.cpp index a999b4b325..a665ec2872 100644 --- a/Libraries/LibJS/Parser.cpp +++ b/Libraries/LibJS/Parser.cpp @@ -295,7 +295,7 @@ RefPtr<FunctionExpression> Parser::try_parse_arrow_function_expression(bool expe } else if (match(TokenType::Identifier)) { auto parameter_name = consume(TokenType::Identifier).value(); RefPtr<Expression> default_value; - if (match(TokenType::Equals)) { + if (expect_parens && match(TokenType::Equals)) { consume(TokenType::Equals); default_value = parse_expression(0); } diff --git a/Libraries/LibJS/Tests/arrow-functions.js b/Libraries/LibJS/Tests/arrow-functions.js index 56537de34c..6c9f7eadaf 100644 --- a/Libraries/LibJS/Tests/arrow-functions.js +++ b/Libraries/LibJS/Tests/arrow-functions.js @@ -4,6 +4,9 @@ try { let getNumber = () => 42; assert(getNumber() === 42); + getNumber = () => 99; + assert(getNumber() === 99); + let add = (a, b) => a + b; assert(add(2, 3) === 5); |