| Index: src/parsing/preparse-data.h
|
| diff --git a/src/parsing/preparse-data.h b/src/parsing/preparse-data.h
|
| index e8e909f855125e874d3e049be75fcb7d742b18fb..388ecff4ee0232c0d8ab404d4a72d311ee5ad443 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 key, 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,19 +74,32 @@ class ParserRecorder {
|
| class SingletonLogger : public ParserRecorder {
|
| public:
|
| SingletonLogger()
|
| - : has_error_(false), start_(-1), end_(-1), error_type_(kSyntaxError) {}
|
| + : has_error_(false),
|
| + key_(-1),
|
| + 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 key, 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);
|
| + key_ = key;
|
| 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 +125,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_;
|
| @@ -145,9 +172,13 @@ class SingletonLogger : public ParserRecorder {
|
|
|
| private:
|
| bool has_error_;
|
| + int key_;
|
| 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,11 +201,17 @@ class CompleteParserRecorder : public ParserRecorder {
|
| CompleteParserRecorder();
|
| virtual ~CompleteParserRecorder() {}
|
|
|
| - virtual void LogFunction(int start, int end, int literals, int properties,
|
| + virtual void LogFunction(int key, 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(key);
|
| function_store_.Add(start);
|
| function_store_.Add(end);
|
| + function_store_.Add(num_parameters);
|
| + function_store_.Add(function_length);
|
| + function_store_.Add(has_duplicate_parameters);
|
| function_store_.Add(literals);
|
| function_store_.Add(properties);
|
| function_store_.Add(language_mode);
|
|
|