瀏覽代碼

LibJS: Allow 'yield' as a variable name outside of generator functions

Ali Mohammad Pur 4 年之前
父節點
當前提交
bd9f28bba6
共有 1 個文件被更改,包括 4 次插入0 次删除
  1. 4 0
      Userland/Libraries/LibJS/Parser.cpp

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

@@ -1680,6 +1680,10 @@ NonnullRefPtr<VariableDeclaration> Parser::parse_variable_declaration(bool for_l
                 consume(TokenType::Identifier).value());
                 consume(TokenType::Identifier).value());
         } else if (auto pattern = parse_binding_pattern()) {
         } else if (auto pattern = parse_binding_pattern()) {
             target = pattern.release_nonnull();
             target = pattern.release_nonnull();
+        } else if (!m_state.in_generator_function_context && match(TokenType::Yield)) {
+            target = create_ast_node<Identifier>(
+                { m_state.current_token.filename(), rule_start.position(), position() },
+                consume().value());
         }
         }
 
 
         if (target.has<Empty>()) {
         if (target.has<Empty>()) {