Sfoglia il codice sorgente

LibJS: Treat default parameter values as being in function context

e.g. `new.target` should be permitted in
`function foo(x = new.target) {}`.
Ali Mohammad Pur 4 anni fa
parent
commit
b5b84029ab
1 ha cambiato i file con 1 aggiunte e 0 eliminazioni
  1. 1 0
      Userland/Libraries/LibJS/Parser.cpp

+ 1 - 0
Userland/Libraries/LibJS/Parser.cpp

@@ -1570,6 +1570,7 @@ Vector<FunctionNode::Parameter> Parser::parse_formal_parameters(int& function_le
         RefPtr<Expression> default_value;
         RefPtr<Expression> default_value;
         if (match(TokenType::Equals)) {
         if (match(TokenType::Equals)) {
             consume();
             consume();
+            TemporaryChange change(m_state.in_function_context, true);
             has_default_parameter = true;
             has_default_parameter = true;
             function_length = parameters.size();
             function_length = parameters.size();
             default_value = parse_expression(2);
             default_value = parse_expression(2);