Index: src/parser.cc |
diff --git a/src/parser.cc b/src/parser.cc |
index 5c85b97ba655848215c623222509fc4528ea1b31..94725e1ffbbcf9cb5479467012822416873b9026 100644 |
--- a/src/parser.cc |
+++ b/src/parser.cc |
@@ -758,6 +758,7 @@ Parser::Parser(CompilationInfo* info, ParseInfo* parse_info) |
set_allow_harmony_numeric_literals(FLAG_harmony_numeric_literals); |
set_allow_classes(FLAG_harmony_classes); |
set_allow_harmony_object_literals(FLAG_harmony_object_literals); |
+ set_allow_harmony_templates(FLAG_harmony_templates); |
for (int feature = 0; feature < v8::Isolate::kUseCounterFeatureCount; |
++feature) { |
use_counts_[feature] = 0; |
@@ -4967,4 +4968,33 @@ void Parser::ParseOnBackground() { |
log_ = NULL; |
} |
} |
+ |
+ |
+void Parser::AddTemplateSpan(TemplateLiteralState* state) { |
+ // TODO: Make this work properly... |
+ /*if (!state->spans_) { |
+ state->spans_ = new (zone()) ZoneList<const AstTemplateSpan*>(8, zone()); |
+ } |
+ const AstRawString* tv = scanner()->CurrentSymbol(ast_value_factory()); |
+ const AstRawString* trv = scanner()->CurrentRawSymbol(ast_value_factory()); |
+ const AstTemplateSpan* span = ast_value_factory()->NewTemplateSpan(tv, trv); |
+ state->spans_->Add(span, zone());*/ |
+} |
+ |
+void Parser::AddTemplateExpression(TemplateLiteralState* state, |
+ Expression* expression) { |
+ // TODO: Make this work properly... |
+ /*if (!state->expressions_) { |
+ state->expressions_ = new(zone()) ZoneList<Expression*>(8, zone()); |
+ } |
+ state->expressions_->Add(expression, zone());*/ |
+} |
+ |
+Expression* Parser::CloseTemplateLiteral(TemplateLiteralState* state, int pos) { |
+ Expression* lit = |
+ factory()->NewTemplateLiteral(state->spans_, state->expressions_, pos); |
+ state->expressions_ = NULL; |
+ state->spans_ = NULL; |
+ return lit; |
+} |
} } // namespace v8::internal |