whole_func_string: function __shellEscape (params, options) {
      if (params instanceof Escaped) {
          return params.value
      } else if (Array.isArray(params)) {
          return params.map(param => __shellEscape(param, options))
      } else if (params == null) {
          return []
      } else {
          return options.verbatim ? String(params) : shellEscape(String(params))
      }
  }
func_code_string: function __shellEscape (params, options) {
      if (params instanceof Escaped) {
          return params.value
      } else if (Array.isArray(params)) {
          return params.map(param => __shellEscape(param, options))
      } else if (params == null) {
          return []
      } else {
          return options.verbatim ? String(params) : shellEscape(String(params))
      }
  }
func_documentation_string: /*
  the (recursive) guts of _shellEscape. returns a leaf node (string)
  or a possibly-empty array of arrays/leaf nodes. prunes
  null and undefined by returning empty arrays