transformFormalParameterList(tree) {
    let parameters = [];
    let changed = false;
    let defaultToUndefined = false;
    for (let i = 0; i < tree.parameters.length; i++) {
      let param = this.transformAny(tree.parameters[i]);
      if (param !== tree.parameters[i])
        changed = true;

      if (param.isRestParameter() ||
          !param.parameter.initializer && !defaultToUndefined) {
        parameters.push(param);

      // binding = initializer
      // binding  // with default undefined initializer
      //
      // =>
      //
      // var binding = ...
      } else {
        defaultToUndefined = true;
        changed = true;
        this.parameterStatements.push(
            createDefaultAssignment(i, param.parameter.binding, param.parameter.initializer));
      }
    }

    if (!changed)
      return tree;

    return new FormalParameterList(tree.location, parameters);
  }
Desugars default parameters.

@see <a href="http://wiki.ecmascript.org/doku.php?id=harmony:parameter_default_values">harmony:parameter_default_values</a>