var Handlebars = require("./base"); // BEGIN(BROWSER) Handlebars.Exception = function(message) { var tmp = Error.prototype.constructor.apply(this, arguments); for (var p in tmp) { if (tmp.hasOwnProperty(p)) { this[p] = tmp[p]; } } this.message = tmp.message; }; Handlebars.Exception.prototype = new Error(); // Build out our basic SafeString type Handlebars.SafeString = function(string) { this.string = string; }; Handlebars.SafeString.prototype.toString = function() { return this.string.toString(); }; (function() { var escape = { "<": "<", ">": ">", '"': """, "'": "'", "`": "`" }; var badChars = /&(?!\w+;)|[<>"'`]/g; var possible = /[&<>"'`]/; var escapeChar = function(chr) { return escape[chr] || "&"; }; Handlebars.Utils = { escapeExpression: function(string) { // don't escape SafeStrings, since they're already safe if (string instanceof Handlebars.SafeString) { return string.toString(); } else if (string == null || string === false) { return ""; } if(!possible.test(string)) { return string; } return string.replace(badChars, escapeChar); }, isEmpty: function(value) { if (typeof value === "undefined") { return true; } else if (value === null) { return true; } else if (value === false) { return true; } else if(Object.prototype.toString.call(value) === "[object Array]" && value.length === 0) { return true; } else { return false; } } }; })(); // END(BROWSER)