var stream = OutputStream(output);
toplevel.print(stream);
result.code = stream.get();
+ if (stream.interpolate()) // Nick
+ result.interpolated = stream.get_interpolated()
if (options.sourceMap) {
result.map = output.source_map.toString();
var url = options.sourceMap.url;
var newline_insert = -1;
var stack;
var OUTPUT;
+ var interpolated; // Nick
function reset() {
last = "";
stack = [];
var str = OUTPUT;
OUTPUT = "";
+ interpolated = false; // Nick
return str;
}
// Nick
interpolate : function() {
return options.interpolate
- }
+ },
+ get_interpolated : function() {
+ return interpolated
+ },
+ set_interpolated : function(value) {
+ interpolated = value
+ },
};
}
if (self.tag) self.tag.print(output);
output.print("`");
for (var i = 0; i < self.expressions.length; i++) {
- if (output.interpolate) { // Nick
- output.print(self.strings[i].replace("\\", "\\\\").replace("${", "\\${"));
+ if (output.interpolate()) { // Nick
+ output.print(self.strings[i].replaceAll("\\", "\\\\").replaceAll("${", "\\${"));
output.print("\\${");
}
else {
self.expressions[i].print(output);
output.print("}");
}
- if (output.interpolate) // Nick
- output.print(self.strings[i].replace("\\", "\\\\").replace("${", "\\${"));
+ if (output.interpolate()) // Nick
+ output.print(self.strings[i].replaceAll("\\", "\\\\").replaceAll("${", "\\${"));
else
output.print(self.strings[i]);
output.print("`");
// Nick
DEFPRINT(AST_Interpolate, function(output) {
- //if (!output.interpolate()) // Nick
- // throw new Error("AST_Interpolate with interpolation turned off")
- output.print("(${");
+ output.print("${");
this.expression.print(output);
- output.print("})");
+ output.print("}");
+ output.set_interpolated(true);
});
function force_statement(stat, output) {