summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkpdecker <kpdecker@gmail.com>2014-12-27 13:30:20 -0600
committerkpdecker <kpdecker@gmail.com>2014-12-27 13:30:20 -0600
commitec798a7c4493cd0c4d78b42c78c667600fc1bed3 (patch)
treec2b504f11c32d900886418ceb8967642cc1207ca
parentbe0ba759250489858cb6844c5de47cfa003b87ba (diff)
parentb764fb1ded3c2bb3c56796e6d7264981e63ba0d7 (diff)
downloadhandlebars.js-ec798a7c4493cd0c4d78b42c78c667600fc1bed3.zip
handlebars.js-ec798a7c4493cd0c4d78b42c78c667600fc1bed3.tar.gz
handlebars.js-ec798a7c4493cd0c4d78b42c78c667600fc1bed3.tar.bz2
Merge branch 'master' into visitor-update
-rw-r--r--lib/handlebars/compiler/compiler.js4
-rw-r--r--lib/handlebars/compiler/javascript-compiler.js4
-rw-r--r--lib/handlebars/utils.js10
-rw-r--r--package.json26
-rw-r--r--spec/source-map.js10
5 files changed, 34 insertions, 20 deletions
diff --git a/lib/handlebars/compiler/compiler.js b/lib/handlebars/compiler/compiler.js
index 13143cc..95fe101 100644
--- a/lib/handlebars/compiler/compiler.js
+++ b/lib/handlebars/compiler/compiler.js
@@ -1,5 +1,5 @@
import Exception from "../exception";
-import {isArray} from "../utils";
+import {isArray, indexOf} from "../utils";
import AST from "./ast";
var slice = [].slice;
@@ -400,7 +400,7 @@ Compiler.prototype = {
blockParamIndex: function(name) {
for (var depth = 0, len = this.options.blockParams.length; depth < len; depth++) {
var blockParams = this.options.blockParams[depth],
- param = blockParams && blockParams.indexOf(name);
+ param = blockParams && indexOf(blockParams, name);
if (blockParams && param >= 0) {
return [depth, param];
}
diff --git a/lib/handlebars/compiler/javascript-compiler.js b/lib/handlebars/compiler/javascript-compiler.js
index 9f40792..247f5e0 100644
--- a/lib/handlebars/compiler/javascript-compiler.js
+++ b/lib/handlebars/compiler/javascript-compiler.js
@@ -248,7 +248,7 @@ JavaScriptCompiler.prototype = {
if (bufferStart) {
bufferStart.prepend('return ');
bufferEnd.add(';');
- } else {
+ } else if (!sourceSeen) {
this.source.push('return "";');
}
} else {
@@ -263,7 +263,7 @@ JavaScriptCompiler.prototype = {
}
if (varDeclarations) {
- this.source.prepend('var ' + varDeclarations.substring(2) + (appendFirst ? '' : ';\n '));
+ this.source.prepend('var ' + varDeclarations.substring(2) + (appendFirst ? '' : ';\n'));
}
return this.source.merge();
diff --git a/lib/handlebars/utils.js b/lib/handlebars/utils.js
index 8cea50d..fc2b846 100644
--- a/lib/handlebars/utils.js
+++ b/lib/handlebars/utils.js
@@ -48,6 +48,16 @@ export var isArray = Array.isArray || function(value) {
return (value && typeof value === 'object') ? toString.call(value) === '[object Array]' : false;
};
+// Older IE versions do not directly support indexOf so we must implement our own, sadly.
+export function indexOf(array, value) {
+ for (var i = 0, len = array.length; i < len; i++) {
+ if (array[i] === value) {
+ return i;
+ }
+ }
+ return -1;
+}
+
export function escapeExpression(string) {
// don't escape SafeStrings, since they're already safe
diff --git a/package.json b/package.json
index 61bce71..c4711c9 100644
--- a/package.json
+++ b/package.json
@@ -21,37 +21,37 @@
"node": ">=0.4.7"
},
"dependencies": {
- "optimist": "~0.3",
+ "optimist": "^0.6.1",
"source-map": "^0.1.40"
},
"optionalDependencies": {
"uglify-js": "~2.3"
},
"devDependencies": {
- "async": "~0.2.9",
+ "async": "^0.9.0",
"aws-sdk": "~1.5.0",
"benchmark": "~1.0",
- "dustjs-linkedin": "~2.0.2",
+ "dustjs-linkedin": "^2.0.2",
"eco": "~1.1.0-rc-3",
"es6-module-packager": "^2.0.0",
"grunt": "~0.4.1",
"grunt-cli": "~0.1.10",
- "grunt-contrib-clean": "~0.4.1",
- "grunt-contrib-concat": "~0.3.0",
- "grunt-contrib-connect": "~0.5.0",
- "grunt-contrib-copy": "~0.4.1",
+ "grunt-contrib-clean": "0.x",
+ "grunt-contrib-concat": "0.x",
+ "grunt-contrib-connect": "0.x",
+ "grunt-contrib-copy": "0.x",
"grunt-contrib-jshint": "0.x",
- "grunt-contrib-requirejs": "~0.4.1",
- "grunt-contrib-uglify": "~0.2.2",
- "grunt-contrib-watch": "~0.5.3",
+ "grunt-contrib-requirejs": "0.x",
+ "grunt-contrib-uglify": "0.x",
+ "grunt-contrib-watch": "0.x",
"grunt-saucelabs": "8.x",
"istanbul": "^0.3.0",
"jison": "~0.3.0",
"keen.io": "0.0.3",
"mocha": "~1.20.0",
- "mustache": "~0.7.2",
- "semver": "~2.1.0",
- "underscore": "~1.5.1"
+ "mustache": "0.x",
+ "semver": "^4.0.0",
+ "underscore": "^1.5.1"
},
"main": "lib/index.js",
"bin": {
diff --git a/spec/source-map.js b/spec/source-map.js
index 4d3fa3e..6eced9c 100644
--- a/spec/source-map.js
+++ b/spec/source-map.js
@@ -1,9 +1,13 @@
/*global CompilerContext, Handlebars */
-var SourceMap = require('source-map'),
- SourceMapConsumer = SourceMap.SourceMapConsumer;
+try {
+ var SourceMap = require('source-map'),
+ SourceMapConsumer = SourceMap.SourceMapConsumer;
+} catch (err) {
+ /* NOP for in browser */
+}
describe('source-map', function() {
- if (!Handlebars.precompile) {
+ if (!Handlebars.precompile || !SourceMap) {
return;
}