Skip to content

Commit cf5c0be

Browse files
mohd-akramjaylinski
authored andcommitted
Fix non-contiguous program indices
1 parent ae83edd commit cf5c0be

2 files changed

Lines changed: 10 additions & 12 deletions

File tree

lib/handlebars/compiler/javascript-compiler.js

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -164,12 +164,10 @@ JavaScriptCompiler.prototype = {
164164

165165
let { programs, decorators } = this.context;
166166
for (i = 0, l = programs.length; i < l; i++) {
167-
if (programs[i]) {
168-
ret[i] = programs[i];
169-
if (decorators[i]) {
170-
ret[i + '_d'] = decorators[i];
171-
ret.useDecorators = true;
172-
}
167+
ret[i] = programs[i];
168+
if (decorators[i]) {
169+
ret[i + '_d'] = decorators[i];
170+
ret.useDecorators = true;
173171
}
174172
}
175173

@@ -833,8 +831,8 @@ JavaScriptCompiler.prototype = {
833831
let existing = this.matchExistingProgram(child);
834832

835833
if (existing == null) {
836-
this.context.programs.push(''); // Placeholder to prevent name conflicts for nested children
837-
let index = this.context.programs.length;
834+
// Placeholder to prevent name conflicts for nested children
835+
let index = this.context.programs.push('') - 1;
838836
child.index = index;
839837
child.name = 'program' + index;
840838
this.context.programs[index] = compiler.compile(
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
define(['handlebars.runtime'], function(Handlebars) {
22
Handlebars = Handlebars["default"]; var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};
3-
return templates['known.helpers'] = template({"1":function(container,depth0,helpers,partials,data) {
3+
return templates['known.helpers'] = template({"0":function(container,depth0,helpers,partials,data) {
44
var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {
55
if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {
66
return parent[propertyName];
77
}
88
return undefined
99
};
1010
return " <div>Some known helper</div>\n"
11-
+ ((stack1 = lookupProperty(helpers,"anotherHelper").call(depth0 != null ? depth0 : (container.nullContext || {}),true,{"name":"anotherHelper","hash":{},"fn":container.program(2, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":3,"column":4},"end":{"line":5,"column":22}}})) != null ? stack1 : "");
12-
},"2":function(container,depth0,helpers,partials,data) {
11+
+ ((stack1 = lookupProperty(helpers,"anotherHelper").call(depth0 != null ? depth0 : (container.nullContext || {}),true,{"name":"anotherHelper","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":3,"column":4},"end":{"line":5,"column":22}}})) != null ? stack1 : "");
12+
},"1":function(container,depth0,helpers,partials,data) {
1313
return " <div>Another known helper</div>\n";
1414
},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) {
1515
var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {
@@ -18,7 +18,7 @@ return parent[propertyName];
1818
}
1919
return undefined
2020
};
21-
return ((stack1 = lookupProperty(helpers,"someHelper").call(depth0 != null ? depth0 : (container.nullContext || {}),true,{"name":"someHelper","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":6,"column":15}}})) != null ? stack1 : "");
21+
return ((stack1 = lookupProperty(helpers,"someHelper").call(depth0 != null ? depth0 : (container.nullContext || {}),true,{"name":"someHelper","hash":{},"fn":container.program(0, data, 0),"inverse":container.noop,"data":data,"loc":{"start":{"line":1,"column":0},"end":{"line":6,"column":15}}})) != null ? stack1 : "");
2222
},"useData":true});
2323
});
2424

0 commit comments

Comments
 (0)