code: function prelude(token) {
    token = token.toLowerCase();
  
    var result = '';
    var i = 0;
  
    // special case for i = 0 to avoid '-1' index
    if (token[i] === 'y' && isVowel(token[i + 1])) {
      result += token[i].toUpperCase();
    } else {
      result += token[i];
    }
  
    for (i = 1; i < token.length; i++) {
      if ((token[i] === 'u' || token[i] === 'i') && isVowel(token[i - 1]) && isVowel(token[i + 1])) {
        result += token[i].toUpperCase();
      } else if (token[i] === 'y' && (isVowel(token[i - 1]) || isVowel(token[i + 1]))) {
        result += token[i].toUpperCase();
      } else if (token[i] === 'u' && token[i - 1] === 'q') {
        result += token[i].toUpperCase();
      } else {
        result += token[i];
      }
    }
  
    return result;
  }
docs: Pre-process/prepare words as required by french porter stemmer algorithm
  @param  {String} token Word to be prepared
  @return {String}       Prepared word