diff options
Diffstat (limited to 'lib/handlebars/compiler/javascript-compiler.js')
-rw-r--r-- | lib/handlebars/compiler/javascript-compiler.js | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/handlebars/compiler/javascript-compiler.js b/lib/handlebars/compiler/javascript-compiler.js index f0bd58b..b04ef1a 100644 --- a/lib/handlebars/compiler/javascript-compiler.js +++ b/lib/handlebars/compiler/javascript-compiler.js @@ -75,6 +75,11 @@ JavaScriptCompiler.prototype = { } else { this[opcode.opcode].apply(this, opcode.args); } + + // Reset the stripNext flag if it was not set by this operation. + if (opcode.opcode !== this.stripNext) { + this.stripNext = false; + } } // Flush any trailing content that might be pending. @@ -246,6 +251,20 @@ JavaScriptCompiler.prototype = { this.pendingContent = content; }, + // [strip] + // + // On stack, before: ... + // On stack, after: ... + // + // Removes any trailing whitespace from the prior content node and flags + // the next operation for stripping if it is a content node. + strip: function() { + if (this.pendingContent) { + this.pendingContent = this.pendingContent.replace(/\s+$/, ''); + } + this.stripNext = 'strip'; + }, + // [append] // // On stack, before: value, ... |