docs: function tryParseMethodDefinition(token, key, computed, node) {
          var value, options, methodNode;
  
          if (token.type === Token.Identifier) {
              // check for `get` and `set`;
  
              if (token.value === 'get' && lookaheadPropertyName()) {
                  computed = match('[');
                  key = parseObjectPropertyKey();
                  methodNode = new Node();
                  expect('(');
                  expect(')');
                  value = parsePropertyFunction(methodNode, {
                      params: [],
                      defaults: [],
                      stricted: null,
                      firstRestricted: null,
                      message: null
                  });
                  return node.finishProperty('get', key, computed, value, false, false);
              } else if (token.value === 'set' && lookaheadPropertyName()) {
                  computed = match('[');
                  key = parseObjectPropertyKey();
                  methodNode = new Node();
                  expect('(');
  
                  options = {
                      params: [],
                      defaultCount: 0,
                      defaults: [],
                      firstRestricted: null,
                      paramSet: {}
                  };
                  if (match(')')) {
                      tolerateUnexpectedToken(lookahead);
                  } else {
                      parseParam(options);
                      if (options.defaultCount === 0) {
                          options.defaults = [];
                      }
                  }
                  expect(')');
  
                  value = parsePropertyFunction(methodNode, options);
                  return node.finishProperty('set', key, computed, value, false, false);
              }
          }
  
          if (match('(')) {
              value = parsePropertyMethodFunction();
              return node.finishProperty('init', key, computed, value, true, false);
          }
  
          // Not a MethodDefinition.
          return null;
      }