code: function (checks) {
      this.from = this.char;
  
      // Move to the next non-space character.
      var start;
      if (/\s/.test(this.peek())) {
        start = this.char;
  
        while (/\s/.test(this.peek())) {
          this.from += 1;
          this.skip();
        }
      }
  
      // Methods that work with multi-line structures and move the
      // character pointer.
  
      var match = this.scanComments() ||
        this.scanStringLiteral(checks) ||
        this.scanTemplateLiteral();
  
      if (match) {
        return match;
      }
  
      // Methods that don't move the character pointer.
  
      match =
        this.scanRegExp() ||
        this.scanPunctuator() ||
        this.scanKeyword() ||
        this.scanIdentifier() ||
        this.scanNumericLiteral();
  
      if (match) {
        this.skip(match.value.length);
        return match;
      }
  
      // No token could be matched, give up.
  
      return null;
    }
docs: /*
  Produce the next raw token or return 'null' if no tokens can be matched.
  This method skips over all space characters.