function spreadrest(operation) {
    if (!checkPunctuator(state.tokens.next, "...")) {
      return false;
    }

    if (!state.inES6(true)) {
      warning("W119", state.tokens.next, operation + " operator", "6");
    }
    advance();

    if (checkPunctuator(state.tokens.next, "...")) {
      warning("E024", state.tokens.next, "...");
      while (checkPunctuator(state.tokens.next, "...")) {
        advance();
      }
    }

    return true;
  }
Consume the "..." token which designates "spread" and "rest" operations if
it is present. If the operator is repeated, consume every repetition, and
issue a single error describing the syntax error.

@param {string} operation - either "spread" or "rest"

@returns {boolean} a value describing whether or not any tokens were
                   consumed in this way