| Index: src/parsing/preparse-data.h
|
| diff --git a/src/parsing/preparse-data.h b/src/parsing/preparse-data.h
|
| index 42ab55cfeae058727cdda44a4d95c46d8e1fd0a6..77e62428cd865ca315ac81e07f2f19b14a9ca3f8 100644
|
| --- a/src/parsing/preparse-data.h
|
| +++ b/src/parsing/preparse-data.h
|
| @@ -46,32 +46,7 @@ class ScriptData {
|
| DISALLOW_COPY_AND_ASSIGN(ScriptData);
|
| };
|
|
|
| -// Abstract interface for preparse data recorder.
|
| -class ParserRecorder {
|
| - public:
|
| - ParserRecorder() { }
|
| - virtual ~ParserRecorder() { }
|
| -
|
| - // Logs the scope and some details of a function literal in the source.
|
| - virtual void LogFunction(int start, int end, int num_parameters,
|
| - int function_length, bool has_duplicate_parameters,
|
| - int literals, int properties,
|
| - LanguageMode language_mode, bool uses_super_property,
|
| - bool calls_eval) = 0;
|
| -
|
| - // Logs an error message and marks the log as containing an error.
|
| - // Further logging will be ignored, and ExtractData will return a vector
|
| - // representing the error only.
|
| - virtual void LogMessage(int start, int end, MessageTemplate::Template message,
|
| - const char* argument_opt,
|
| - ParseErrorType error_type) = 0;
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(ParserRecorder);
|
| -};
|
| -
|
| -
|
| -class SingletonLogger : public ParserRecorder {
|
| +class SingletonLogger final {
|
| public:
|
| SingletonLogger()
|
| : has_error_(false),
|
| @@ -81,18 +56,16 @@ class SingletonLogger : public ParserRecorder {
|
| function_length_(-1),
|
| has_duplicate_parameters_(false),
|
| error_type_(kSyntaxError) {}
|
| - virtual ~SingletonLogger() {}
|
|
|
| void Reset() { has_error_ = false; }
|
|
|
| - virtual void LogFunction(int start, int end, int num_parameters,
|
| - int function_length, bool has_duplicate_parameters,
|
| - int literals, int properties,
|
| - LanguageMode language_mode, bool uses_super_property,
|
| - bool calls_eval) {
|
| + void LogFunction(int start, int end, int num_parameters, int function_length,
|
| + bool has_duplicate_parameters, int literals, int properties,
|
| + LanguageMode language_mode, bool uses_super_property,
|
| + bool calls_eval) {
|
| DCHECK(!has_error_);
|
| - // Check that we only log at most one function.
|
| - DCHECK(start_ == -1 && end_ == -1);
|
| + // Make sure we never nest function logging.
|
| + DCHECK_LT(end_, start);
|
| start_ = start;
|
| end_ = end;
|
| num_parameters_ = num_parameters;
|
| @@ -108,8 +81,8 @@ class SingletonLogger : public ParserRecorder {
|
| // Logs an error message and marks the log as containing an error.
|
| // Further logging will be ignored, and ExtractData will return a vector
|
| // representing the error only.
|
| - virtual void LogMessage(int start, int end, MessageTemplate::Template message,
|
| - const char* argument_opt, ParseErrorType error_type) {
|
| + void LogMessage(int start, int end, MessageTemplate::Template message,
|
| + const char* argument_opt, ParseErrorType error_type) {
|
| if (has_error_) return;
|
| has_error_ = true;
|
| start_ = start;
|
| @@ -187,8 +160,7 @@ class SingletonLogger : public ParserRecorder {
|
| ParseErrorType error_type_;
|
| };
|
|
|
| -
|
| -class CompleteParserRecorder : public ParserRecorder {
|
| +class CompleteParserRecorder final {
|
| public:
|
| struct Key {
|
| bool is_one_byte;
|
| @@ -196,19 +168,17 @@ class CompleteParserRecorder : public ParserRecorder {
|
| };
|
|
|
| CompleteParserRecorder();
|
| - virtual ~CompleteParserRecorder() {}
|
|
|
| - virtual void LogFunction(int start, int end, int num_parameters,
|
| - int function_length, bool has_duplicate_parameters,
|
| - int literals, int properties,
|
| - LanguageMode language_mode, bool uses_super_property,
|
| - bool calls_eval);
|
| + void LogFunction(int start, int end, int num_parameters, int function_length,
|
| + bool has_duplicate_parameters, int literals, int properties,
|
| + LanguageMode language_mode, bool uses_super_property,
|
| + bool calls_eval);
|
|
|
| // Logs an error message and marks the log as containing an error.
|
| // Further logging will be ignored, and ExtractData will return a vector
|
| // representing the error only.
|
| - virtual void LogMessage(int start, int end, MessageTemplate::Template message,
|
| - const char* argument_opt, ParseErrorType error_type);
|
| + void LogMessage(int start, int end, MessageTemplate::Template message,
|
| + const char* argument_opt, ParseErrorType error_type);
|
| ScriptData* GetScriptData();
|
|
|
| bool HasError() {
|
|
|