docs: function parseYieldExpression() {
          var argument, expr, delegate, previousAllowYield;
  
          argument = null;
          expr = new Node();
          delegate = false;
  
          expectKeyword('yield');
  
          if (!hasLineTerminator) {
              previousAllowYield = state.allowYield;
              state.allowYield = false;
              delegate = match('*');
              if (delegate) {
                  lex();
                  argument = parseAssignmentExpression();
              } else {
                  if (!match(';') && !match('}') && !match(')') && lookahead.type !== Token.EOF) {
                      argument = parseAssignmentExpression();
                  }
              }
              state.allowYield = previousAllowYield;
          }
  
          return expr.finishYieldExpression(argument, delegate);
      }