From b4bac7f4f9547e709d12ff3b1fa94a3e82d5eeba Mon Sep 17 00:00:00 2001 From: Alan Johnson Date: Sat, 11 Sep 2010 18:07:40 -0400 Subject: [PATCH] Firefox compatibility fixes. --- lib/handlebars.js | 11 ++++------- test/handlebars.js | 2 +- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/lib/handlebars.js b/lib/handlebars.js index 261cbb77..9d6c1645 100644 --- a/lib/handlebars.js +++ b/lib/handlebars.js @@ -17,7 +17,7 @@ Handlebars = { }, isFunction: function(fn) { - return typeof fn == "function"; + return Object.prototype.toString.call(fn) == "[object Function]"; }, escapeText: function(string) { @@ -142,7 +142,7 @@ Handlebars = { return true; } else if (!value) { return true; - } else if(toString.call(value) === "[object Array]" && value.length == 0) { + } else if(Object.prototype.toString.call(value) === "[object Array]" && value.length == 0) { return true; } else { return false; @@ -192,18 +192,16 @@ Handlebars.SafeString.prototype.toString = function() { Handlebars.helperMissing = function(object, fn) { var ret = ""; - console.log(object); if(object === true) { return fn(this); } else if(object === false) { return ""; - } else if(object.constructor === Array) { + } else if(Object.prototype.toString.call(object) === "[object Array]") { for(var i=0, j=object.length; i 0) { return "( stack[stack.length - " + depth + "]" + paramExpr + ")"; } else { - return "( context" + paramExpr + " || fallback " + paramExpr + " )"; + return "( context" + paramExpr + " || fallback" + paramExpr + " )"; } }, diff --git a/test/handlebars.js b/test/handlebars.js index da9e5dad..e090ac32 100644 --- a/test/handlebars.js +++ b/test/handlebars.js @@ -2,7 +2,7 @@ module("basic context"); var shouldCompileTo = function(string, hash, result, message) { var template = Handlebars.compile(string); - var params = toString.call(hash) === "[object Array]" ? hash : [hash, undefined]; + var params = Object.prototype.toString.call(hash) === "[object Array]" ? hash : [hash, undefined]; equal(template.apply(this, params), result, message); }