code: function unescape(input, recurse) {
    if (input == null)
      return input;
  
    switch (typeof input) {
    case 'string':
      return unescaper(input);
    case 'number':
    case 'boolean':
      return input;
    }
  
    if (typeof recurse !== 'boolean')
      recurse = true;
  
    transform(input, unescaper, recurse);
    return input;
  }
docs: Ensure any input is properly unescaped. Where needed `＄` and `．` are
  replaced with `$` and `.`, respectively.
  
  If input is an object, all keys are unescaped. If input is not an object but
  a string it is unescaped as well. Otherwise return the original value. If
  input is a function or a symbol an error is raised.
  
  Note: if input is an object, keys are replaced in place.
  
  @param {mixed} input  input to unescape
  @param {Boolean, default: true} recurse  whether or not to recurse
  @return {mixed}  properly unescaped input