summaryrefslogtreecommitdiffstats
path: root/lib/handlebars/compiler/base.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/handlebars/compiler/base.js')
-rw-r--r--lib/handlebars/compiler/base.js13
1 files changed, 10 insertions, 3 deletions
diff --git a/lib/handlebars/compiler/base.js b/lib/handlebars/compiler/base.js
index 1378463..ff237ec 100644
--- a/lib/handlebars/compiler/base.js
+++ b/lib/handlebars/compiler/base.js
@@ -1,5 +1,6 @@
import parser from "./parser";
import AST from "./ast";
+import WhitespaceControl from "./whitespace-control";
module Helpers from "./helpers";
import { extend } from "../utils";
@@ -8,11 +9,17 @@ export { parser };
var yy = {};
extend(yy, Helpers, AST);
-export function parse(input) {
+export function parse(input, options) {
// Just return if an already-compile AST was passed in.
- if (input.constructor === AST.ProgramNode) { return input; }
+ if (input.type === 'Program') { return input; }
parser.yy = yy;
- return parser.parse(input);
+ // Altering the shared object here, but this is ok as parser is a sync operation
+ yy.locInfo = function(locInfo) {
+ return new yy.SourceLocation(options && options.srcName, locInfo);
+ };
+
+ var strip = new WhitespaceControl();
+ return strip.accept(parser.parse(input));
}