summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Libraries/LibJS/Parser.cpp2
-rw-r--r--Libraries/LibJS/Tests/arrow-functions.js3
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);