{"record":{"id":"29c9bd1f12c0c89b","repo":"balderdashy/sails","slug":"unsupported-browser-missing-support-for-array-is","errorCode":null,"errorMessage":"Unsupported browser: Missing support for `Array.isArray`, `Array.prototype.forEach`, `Array.prototype.map`, or `Object.keys`!  (Sails' built-in HTML-unescaping for exposed locals supports IE9 and up.)","messagePattern":"Unsupported browser: Missing support for `Array\\.isArray`, `Array\\.prototype\\.forEach`, `Array\\.prototype\\.map`, or `Object\\.keys`!  \\(Sails' built-in HTML-unescaping for exposed locals supports IE9 and up\\.\\)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"lib/hooks/views/unescape-html-entities-deep-lite.min.string.js","lineNumber":81,"sourceCode":" *\n * @returns {JSONCompatible}\n *          The provided data, which has now been destructively HTML-unescaped.\n */\nfunction unescapeHtmlEntitiesDeepLite(data){\n\n  // Check availability of features.\n  // (Default unescaping supports IE 9 and up.\n  //  If you need <=IE 8, etc check out http://kangax.github.io/compat-table/es5/#es5shim.\n  //  For complete flexibility, you can also implement your own unescaping code.\n  //  To do that, pass in `dontUnescapeOnClient: false` when calling the\n  //  `exposeLocalsToBrowser()` view partial.)\n  if (\n    typeof Array.isArray !== 'function' ||\n    typeof Array.prototype.forEach !== 'function' ||\n    typeof Array.prototype.map !== 'function' ||\n    typeof Object.keys !== 'function'\n  ) {\n    throw new Error('Unsupported browser: Missing support for `Array.isArray`, `Array.prototype.forEach`, `Array.prototype.map`, or `Object.keys`!  (Sails\\' built-in HTML-unescaping for exposed locals supports IE9 and up.)');\n  }\n\n\n  // Now rebuild the data recursively.\n  //\n  // > This is a self-invoking recursive function.\n  // > The initial call (made below) sets `thisVal` to `data`.\n  return (function _unescapeRecursive (thisVal) {\n\n    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n    // No need to worry about errors, regexps, dates, functions,\n    // readable streams, buffers, constructors, Infinity, -Infinity,\n    // or `-0` (negative zero).\n    // ***(see note above about bidirectional-JSON-compatible-ness)***\n    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n\n    // If this is `null`, then leave it as-is.\n    if (thisVal === null) {","sourceCodeStart":63,"sourceCodeEnd":99,"githubUrl":"https://github.com/balderdashy/sails/blob/7b76422cc27823df033572bdda5c4910a68b697f/lib/hooks/views/unescape-html-entities-deep-lite.min.string.js#L63-L99","documentation":"Error \"Unsupported browser: Missing support for `Array.isArray`, `Array.prototype.forEach`, `Array.prototype.map`, or `Object.keys`!  (Sails' built-in HTML-unescaping for exposed locals supports IE9 and up.)\" thrown in balderdashy/sails.","triggerScenarios":"Thrown at lib/hooks/views/unescape-html-entities-deep-lite.min.string.js:81 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"7b76422cc27823df033572bdda5c4910a68b697f","analyzedAt":"2026-09-01T04:01:57.104Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}