balderdashy/sails · error
Unsupported browser: Missing support for `Array.isArray`, `A
Error message
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.)
What it means
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.
Source
Thrown at lib/hooks/views/unescape-html-entities-deep-lite.min.string.js:81
*
* @returns {JSONCompatible}
* The provided data, which has now been destructively HTML-unescaped.
*/
function unescapeHtmlEntitiesDeepLite(data){
// Check availability of features.
// (Default unescaping supports IE 9 and up.
// If you need <=IE 8, etc check out http://kangax.github.io/compat-table/es5/#es5shim.
// For complete flexibility, you can also implement your own unescaping code.
// To do that, pass in `dontUnescapeOnClient: false` when calling the
// `exposeLocalsToBrowser()` view partial.)
if (
typeof Array.isArray !== 'function' ||
typeof Array.prototype.forEach !== 'function' ||
typeof Array.prototype.map !== 'function' ||
typeof Object.keys !== 'function'
) {
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.)');
}
// Now rebuild the data recursively.
//
// > This is a self-invoking recursive function.
// > The initial call (made below) sets `thisVal` to `data`.
return (function _unescapeRecursive (thisVal) {
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// No need to worry about errors, regexps, dates, functions,
// readable streams, buffers, constructors, Infinity, -Infinity,
// or `-0` (negative zero).
// ***(see note above about bidirectional-JSON-compatible-ness)***
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// If this is `null`, then leave it as-is.
if (thisVal === null) {View on GitHub (pinned to 7b76422cc2)
When it happens
Trigger: Thrown at lib/hooks/views/unescape-html-entities-deep-lite.min.string.js:81 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of balderdashy/sails@7b76422cc2 (2026-09-01).
Data as JSON: /api/errors/29c9bd1f12c0c89b.
Report an issue: GitHub.