Compare commits

...

1 Commits

Author SHA1 Message Date
Mohamed Akram 95c890ed88 Fix non-contiguous program indices 2026-03-25 20:33:51 +01:00
2 changed files with 10 additions and 12 deletions
@@ -164,14 +164,12 @@ JavaScriptCompiler.prototype = {
let { programs, decorators } = this.context; let { programs, decorators } = this.context;
for (i = 0, l = programs.length; i < l; i++) { for (i = 0, l = programs.length; i < l; i++) {
if (programs[i]) {
ret[i] = programs[i]; ret[i] = programs[i];
if (decorators[i]) { if (decorators[i]) {
ret[i + '_d'] = decorators[i]; ret[i + '_d'] = decorators[i];
ret.useDecorators = true; ret.useDecorators = true;
} }
} }
}
// Release AST/compiler references only needed during compilation for dedup // Release AST/compiler references only needed during compilation for dedup
this.context.environments.length = 0; this.context.environments.length = 0;
@@ -836,8 +834,8 @@ JavaScriptCompiler.prototype = {
let existing = this.matchExistingProgram(child); let existing = this.matchExistingProgram(child);
if (existing == null) { if (existing == null) {
this.context.programs.push(''); // Placeholder to prevent name conflicts for nested children // Placeholder to prevent name conflicts for nested children
let index = this.context.programs.length; let index = this.context.programs.push('') - 1;
child.index = index; child.index = index;
child.name = 'program' + index; child.name = 'program' + index;
this.context.programs[index] = compiler.compile( this.context.programs[index] = compiler.compile(
+4 -4
View File
@@ -1,6 +1,6 @@
define(['handlebars.runtime'], function(Handlebars) { define(['handlebars.runtime'], function(Handlebars) {
Handlebars = Handlebars["default"]; var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {}; Handlebars = Handlebars["default"]; var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};
return templates['known.helpers'] = template({"1":function(container,depth0,helpers,partials,data) { return templates['known.helpers'] = template({"0":function(container,depth0,helpers,partials,data) {
var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {
if (Object.prototype.hasOwnProperty.call(parent, propertyName)) { if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {
return parent[propertyName]; return parent[propertyName];
@@ -8,8 +8,8 @@ return parent[propertyName];
return undefined return undefined
}; };
return " <div>Some known helper</div>\n" return " <div>Some known helper</div>\n"
+ ((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 : ""); + ((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 : "");
},"2":function(container,depth0,helpers,partials,data) { },"1":function(container,depth0,helpers,partials,data) {
return " <div>Another known helper</div>\n"; return " <div>Another known helper</div>\n";
},"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) { },"compiler":[8,">= 4.3.0"],"main":function(container,depth0,helpers,partials,data) {
var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) { var stack1, lookupProperty = container.lookupProperty || function(parent, propertyName) {
@@ -18,7 +18,7 @@ return parent[propertyName];
} }
return undefined return undefined
}; };
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 : ""); 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 : "");
},"useData":true}); },"useData":true});
}); });