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

Unified Diff: src/preparse-data.h

Issue 923683002: Fix lazy parsing for functions that use super. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Increment the PreparserData version Created 5 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
« no previous file with comments | « src/parser.cc ('k') | src/preparse-data-format.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/preparse-data.h
diff --git a/src/preparse-data.h b/src/preparse-data.h
index d06c00b63b679b8fb5895f656696b484400847c5..0d784991c2a3e9024bdb9876a58b7dbba5ed0e06 100644
--- a/src/preparse-data.h
+++ b/src/preparse-data.h
@@ -24,7 +24,8 @@ class ParserRecorder {
// Logs the scope and some details of a function literal in the source.
virtual void LogFunction(int start, int end, int literals, int properties,
- LanguageMode language_mode) = 0;
+ LanguageMode language_mode,
+ bool uses_super_property) = 0;
// Logs an error message and marks the log as containing an error.
// Further logging will be ignored, and ExtractData will return a vector
@@ -48,13 +49,15 @@ class SingletonLogger : public ParserRecorder {
void Reset() { has_error_ = false; }
virtual void LogFunction(int start, int end, int literals, int properties,
- LanguageMode language_mode) {
+ LanguageMode language_mode,
+ bool scope_uses_super_property) {
DCHECK(!has_error_);
start_ = start;
end_ = end;
literals_ = literals;
properties_ = properties;
language_mode_ = language_mode;
+ scope_uses_super_property_ = scope_uses_super_property;
}
// Logs an error message and marks the log as containing an error.
@@ -90,6 +93,10 @@ class SingletonLogger : public ParserRecorder {
DCHECK(!has_error_);
return language_mode_;
}
+ bool scope_uses_super_property() const {
+ DCHECK(!has_error_);
+ return scope_uses_super_property_;
+ }
int is_reference_error() const { return is_reference_error_; }
const char* message() {
DCHECK(has_error_);
@@ -108,6 +115,7 @@ class SingletonLogger : public ParserRecorder {
int literals_;
int properties_;
LanguageMode language_mode_;
+ bool scope_uses_super_property_;
// For error messages.
const char* message_;
const char* argument_opt_;
@@ -126,12 +134,14 @@ class CompleteParserRecorder : public ParserRecorder {
virtual ~CompleteParserRecorder() {}
virtual void LogFunction(int start, int end, int literals, int properties,
- LanguageMode language_mode) {
+ LanguageMode language_mode,
+ bool scope_uses_super_property) {
function_store_.Add(start);
function_store_.Add(end);
function_store_.Add(literals);
function_store_.Add(properties);
function_store_.Add(language_mode);
+ function_store_.Add(scope_uses_super_property);
}
// Logs an error message and marks the log as containing an error.
« no previous file with comments | « src/parser.cc ('k') | src/preparse-data-format.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698