Index: src/parser.cc |
diff --git a/src/parser.cc b/src/parser.cc |
index 9bca3d552401b93770765c2c0bcc390655050715..ab7b778534969c99c40dd0cd6f0235931638e8e4 100644 |
--- a/src/parser.cc |
+++ b/src/parser.cc |
@@ -891,6 +891,9 @@ FunctionLiteral* Parser::DoParseProgram(CompilationInfo* info, |
bool ok = true; |
int beg_pos = scanner()->location().beg_pos; |
ParseSourceElements(body, Token::EOS, info->is_eval(), true, &ok); |
+ |
+ HandleSourceURLComments(); |
+ |
if (ok && strict_mode() == STRICT) { |
CheckOctalLiteral(beg_pos, scanner()->location().end_pos, &ok); |
} |
@@ -3866,6 +3869,18 @@ void Parser::RegisterTargetUse(Label* target, Target* stop) { |
} |
+void Parser::HandleSourceURLComments() { |
+ if (scanner_.source_url()->length() > 0) { |
+ info_->script()->set_source_url( |
+ *scanner_.source_url()->Internalize(isolate())); |
+ } |
+ if (scanner_.source_mapping_url()->length() > 0) { |
+ info_->script()->set_source_mapping_url( |
+ *scanner_.source_mapping_url()->Internalize(isolate())); |
+ } |
+} |
+ |
+ |
void Parser::ThrowPendingError() { |
if (has_pending_error_) { |
MessageLocation location(script_, |