Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(199)

Unified Diff: src/parsing/scanner.h

Issue 2724003006: [parser] Correctly handle invalid escapes in adjacent template tokens. (Closed)
Patch Set: Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/parsing/scanner.h
diff --git a/src/parsing/scanner.h b/src/parsing/scanner.h
index 9885b8ed0a5b5c3988a79332527e1e327539c0a8..150c8e9f714bd36f0728759a15ad43fa91fb4a7c 100644
--- a/src/parsing/scanner.h
+++ b/src/parsing/scanner.h
@@ -215,19 +215,15 @@ class Scanner {
Location error_location() const { return scanner_error_location_; }
bool has_invalid_template_escape() const {
- return invalid_template_escape_message_ != MessageTemplate::kNone;
+ return current_.invalid_template_escape_message_ != MessageTemplate::kNone;
}
MessageTemplate::Template invalid_template_escape_message() const {
- return invalid_template_escape_message_;
+ DCHECK(has_invalid_template_escape());
+ return current_.invalid_template_escape_message_;
}
Location invalid_template_escape_location() const {
- return invalid_template_escape_location_;
- }
-
- void clear_invalid_template_escape() {
DCHECK(has_invalid_template_escape());
- invalid_template_escape_message_ = MessageTemplate::kNone;
- invalid_template_escape_location_ = Location::invalid();
+ return current_.invalid_template_escape_location_;
}
// Similar functions for the upcoming token.
@@ -457,6 +453,8 @@ class Scanner {
LiteralBuffer* raw_literal_chars;
uint32_t smi_value_;
Token::Value token;
+ MessageTemplate::Template invalid_template_escape_message_;
+ Location invalid_template_escape_location_;
vogelheim 2017/03/03 10:40:08 style nitpick: The style guide wants struct member
bakkot1 2017/03/03 20:50:17 Done.
};
static const int kCharacterLookaheadBufferSize = 1;
@@ -475,15 +473,17 @@ class Scanner {
current_.token = Token::UNINITIALIZED;
current_.literal_chars = NULL;
current_.raw_literal_chars = NULL;
+ current_.invalid_template_escape_message_ = MessageTemplate::kNone;
next_.token = Token::UNINITIALIZED;
next_.literal_chars = NULL;
next_.raw_literal_chars = NULL;
+ next_.invalid_template_escape_message_ = MessageTemplate::kNone;
next_next_.token = Token::UNINITIALIZED;
next_next_.literal_chars = NULL;
next_next_.raw_literal_chars = NULL;
+ next_next_.invalid_template_escape_message_ = MessageTemplate::kNone;
found_html_comment_ = false;
scanner_error_ = MessageTemplate::kNone;
- invalid_template_escape_message_ = MessageTemplate::kNone;
}
void ReportScannerError(const Location& location,
@@ -774,9 +774,6 @@ class Scanner {
MessageTemplate::Template scanner_error_;
Location scanner_error_location_;
-
- MessageTemplate::Template invalid_template_escape_message_;
- Location invalid_template_escape_location_;
};
} // namespace internal
« no previous file with comments | « src/parsing/parser-base.h ('k') | src/parsing/scanner.cc » ('j') | src/parsing/scanner.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698