summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bench/templates/depth-1.js6
-rw-r--r--bench/templates/depth-2.js6
-rw-r--r--lib/handlebars/compiler/javascript-compiler.js4
3 files changed, 13 insertions, 3 deletions
diff --git a/bench/templates/depth-1.js b/bench/templates/depth-1.js
new file mode 100644
index 0000000..74809bc
--- /dev/null
+++ b/bench/templates/depth-1.js
@@ -0,0 +1,6 @@
+module.exports = {
+ context: { names: [{name: "Moe"}, {name: "Larry"}, {name: "Curly"}, {name: "Shemp"}], foo: 'bar' },
+ handlebars: "{{#each names}}{{../foo}}{{/each}}",
+ mustache: "{{#names}}{{foo}}{{/names}}",
+ eco: "<% for item in @names: %><%= @foo %><% end %>"
+};
diff --git a/bench/templates/depth-2.js b/bench/templates/depth-2.js
new file mode 100644
index 0000000..1d38baa
--- /dev/null
+++ b/bench/templates/depth-2.js
@@ -0,0 +1,6 @@
+module.exports = {
+ context: { names: [{bat: 'foo', name: ["Moe"]}, {bat: 'foo', name: ["Larry"]}, {bat: 'foo', name: ["Curly"]}, {bat: 'foo', name: ["Shemp"]}], foo: 'bar' },
+ handlebars: "{{#each names}}{{#each name}}{{../bat}}{{../../foo}}{{/each}}{{/each}}",
+ mustache: "{{#names}}{{#name}}{{bat}}{{foo}}{{/name}}{{/names}}",
+ eco: "<% for item in @names: %><% for child in item.name: %><%= item.bat %><%= @foo %><% end %><% end %>"
+};
diff --git a/lib/handlebars/compiler/javascript-compiler.js b/lib/handlebars/compiler/javascript-compiler.js
index f0ae5ac..8222506 100644
--- a/lib/handlebars/compiler/javascript-compiler.js
+++ b/lib/handlebars/compiler/javascript-compiler.js
@@ -17,9 +17,7 @@ JavaScriptCompiler.prototype = {
wrap = true;
}
- if (/^[0-9]+$/.test(name)) {
- ret = parent + "[" + name + "]";
- } else if (JavaScriptCompiler.isValidJavaScriptVariableName(name)) {
+ if (JavaScriptCompiler.isValidJavaScriptVariableName(name)) {
ret = parent + "." + name;
} else {
ret = parent + "['" + name + "']";