summaryrefslogtreecommitdiffstats
path: root/lib/handlebars/utils.js
diff options
context:
space:
mode:
authorParker Selbert <parker@sorentwo.com>2013-05-23 16:18:53 -0500
committerParker Selbert <parker@sorentwo.com>2013-08-14 22:11:59 -0500
commitd02c90c0fbc984523a7a8950e15435938979acbe (patch)
tree78ee38b05556ea482e6938777556c180bc74ae98 /lib/handlebars/utils.js
parent860853ddb4ed4cce3a54bbf070bdfb2e07320633 (diff)
downloadhandlebars.js-d02c90c0fbc984523a7a8950e15435938979acbe.zip
handlebars.js-d02c90c0fbc984523a7a8950e15435938979acbe.tar.gz
handlebars.js-d02c90c0fbc984523a7a8950e15435938979acbe.tar.bz2
Use the ('' + string) form of string coercion
Using string.toString() will throw errors in current versions of Safari (6.0.5 currently) for some values. The error is a particularly cryptic "Type Error: type error", which no indication as to the value that caused the error. By using the '' + string form of coercion the error doesn't seem to occur. Depending on the browser used there is a sizable performance increase in using the concatenation form of coercion. In instances where there is not a performance improvement (i.e. Firefox), the speed difference is entirely negligable. See: http://jsperf.com/convert-to-string-bj/3
Diffstat (limited to 'lib/handlebars/utils.js')
-rw-r--r--lib/handlebars/utils.js4
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/handlebars/utils.js b/lib/handlebars/utils.js
index 1e0e4c9..e104dcf 100644
--- a/lib/handlebars/utils.js
+++ b/lib/handlebars/utils.js
@@ -21,7 +21,7 @@ Handlebars.SafeString = function(string) {
this.string = string;
};
Handlebars.SafeString.prototype.toString = function() {
- return this.string.toString();
+ return "" + this.string;
};
var escape = {
@@ -60,7 +60,7 @@ Handlebars.Utils = {
// Force a string conversion as this will be done by the append regardless and
// the regex test will do this transparently behind the scenes, causing issues if
// an object's to string has escaped characters in it.
- string = string.toString();
+ string = "" + string;
if(!possible.test(string)) { return string; }
return string.replace(badChars, escapeChar);