code: function optionalidentifier(fnparam) {
          if (nexttoken.identifier) {
              advance();
              if (token.reserved && !option.es5) {
                  // `undefined` as a function param is a common pattern to protect
                  // against the case when somebody does `undefined = true` and
                  // help with minification. More info: https://gist.github.com/315916
                  if (!fnparam || token.value !== 'undefined') {
                      warning("Expected an identifier and instead saw '{a}' (a reserved word).",
                              token, token.id);
                  }
              }
              return token.value;
          }
      }
docs: fnparam means that this identifier is being defined as a function argument (see identifier())