| Index: src/parsing/preparse-data.h
|
| diff --git a/src/parsing/preparse-data.h b/src/parsing/preparse-data.h
|
| index e8e909f855125e874d3e049be75fcb7d742b18fb..42ab55cfeae058727cdda44a4d95c46d8e1fd0a6 100644
|
| --- a/src/parsing/preparse-data.h
|
| +++ b/src/parsing/preparse-data.h
|
| @@ -53,7 +53,9 @@ class ParserRecorder {
|
| virtual ~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,
|
| + 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;
|
|
|
| @@ -72,12 +74,20 @@ class ParserRecorder {
|
| class SingletonLogger : public ParserRecorder {
|
| public:
|
| SingletonLogger()
|
| - : has_error_(false), start_(-1), end_(-1), error_type_(kSyntaxError) {}
|
| + : has_error_(false),
|
| + start_(-1),
|
| + end_(-1),
|
| + num_parameters_(-1),
|
| + 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 literals, int properties,
|
| + 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) {
|
| DCHECK(!has_error_);
|
| @@ -85,6 +95,9 @@ class SingletonLogger : public ParserRecorder {
|
| DCHECK(start_ == -1 && end_ == -1);
|
| start_ = start;
|
| end_ = end;
|
| + num_parameters_ = num_parameters;
|
| + function_length_ = function_length;
|
| + has_duplicate_parameters_ = has_duplicate_parameters;
|
| literals_ = literals;
|
| properties_ = properties;
|
| language_mode_ = language_mode;
|
| @@ -110,6 +123,18 @@ class SingletonLogger : public ParserRecorder {
|
|
|
| int start() const { return start_; }
|
| int end() const { return end_; }
|
| + int num_parameters() const {
|
| + DCHECK(!has_error_);
|
| + return num_parameters_;
|
| + }
|
| + int function_length() const {
|
| + DCHECK(!has_error_);
|
| + return function_length_;
|
| + }
|
| + bool has_duplicate_parameters() const {
|
| + DCHECK(!has_error_);
|
| + return has_duplicate_parameters_;
|
| + }
|
| int literals() const {
|
| DCHECK(!has_error_);
|
| return literals_;
|
| @@ -148,6 +173,9 @@ class SingletonLogger : public ParserRecorder {
|
| int start_;
|
| int end_;
|
| // For function entries.
|
| + int num_parameters_;
|
| + int function_length_;
|
| + bool has_duplicate_parameters_;
|
| int literals_;
|
| int properties_;
|
| LanguageMode language_mode_;
|
| @@ -170,17 +198,11 @@ class CompleteParserRecorder : public ParserRecorder {
|
| CompleteParserRecorder();
|
| virtual ~CompleteParserRecorder() {}
|
|
|
| - virtual void LogFunction(int start, int end, int literals, int properties,
|
| + 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) {
|
| - function_store_.Add(start);
|
| - function_store_.Add(end);
|
| - function_store_.Add(literals);
|
| - function_store_.Add(properties);
|
| - function_store_.Add(language_mode);
|
| - function_store_.Add(uses_super_property);
|
| - function_store_.Add(calls_eval);
|
| - }
|
| + 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
|
|
|