| OLD | NEW |
| 1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef V8_PREPARSE_DATA_H_ | 5 #ifndef V8_PREPARSE_DATA_H_ |
| 6 #define V8_PREPARSE_DATA_H_ | 6 #define V8_PREPARSE_DATA_H_ |
| 7 | 7 |
| 8 #include "src/allocation.h" | 8 #include "src/allocation.h" |
| 9 #include "src/hashmap.h" | 9 #include "src/hashmap.h" |
| 10 #include "src/preparse-data-format.h" | 10 #include "src/preparse-data-format.h" |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 48 : has_error_(false), start_(-1), end_(-1), is_reference_error_(false) {} | 48 : has_error_(false), start_(-1), end_(-1), is_reference_error_(false) {} |
| 49 virtual ~SingletonLogger() {} | 49 virtual ~SingletonLogger() {} |
| 50 | 50 |
| 51 void Reset() { has_error_ = false; } | 51 void Reset() { has_error_ = false; } |
| 52 | 52 |
| 53 virtual void LogFunction(int start, | 53 virtual void LogFunction(int start, |
| 54 int end, | 54 int end, |
| 55 int literals, | 55 int literals, |
| 56 int properties, | 56 int properties, |
| 57 StrictMode strict_mode) { | 57 StrictMode strict_mode) { |
| 58 ASSERT(!has_error_); | 58 DCHECK(!has_error_); |
| 59 start_ = start; | 59 start_ = start; |
| 60 end_ = end; | 60 end_ = end; |
| 61 literals_ = literals; | 61 literals_ = literals; |
| 62 properties_ = properties; | 62 properties_ = properties; |
| 63 strict_mode_ = strict_mode; | 63 strict_mode_ = strict_mode; |
| 64 } | 64 } |
| 65 | 65 |
| 66 // Logs an error message and marks the log as containing an error. | 66 // Logs an error message and marks the log as containing an error. |
| 67 // Further logging will be ignored, and ExtractData will return a vector | 67 // Further logging will be ignored, and ExtractData will return a vector |
| 68 // representing the error only. | 68 // representing the error only. |
| 69 virtual void LogMessage(int start, | 69 virtual void LogMessage(int start, |
| 70 int end, | 70 int end, |
| 71 const char* message, | 71 const char* message, |
| 72 const char* argument_opt, | 72 const char* argument_opt, |
| 73 bool is_reference_error) { | 73 bool is_reference_error) { |
| 74 if (has_error_) return; | 74 if (has_error_) return; |
| 75 has_error_ = true; | 75 has_error_ = true; |
| 76 start_ = start; | 76 start_ = start; |
| 77 end_ = end; | 77 end_ = end; |
| 78 message_ = message; | 78 message_ = message; |
| 79 argument_opt_ = argument_opt; | 79 argument_opt_ = argument_opt; |
| 80 is_reference_error_ = is_reference_error; | 80 is_reference_error_ = is_reference_error; |
| 81 } | 81 } |
| 82 | 82 |
| 83 bool has_error() const { return has_error_; } | 83 bool has_error() const { return has_error_; } |
| 84 | 84 |
| 85 int start() const { return start_; } | 85 int start() const { return start_; } |
| 86 int end() const { return end_; } | 86 int end() const { return end_; } |
| 87 int literals() const { | 87 int literals() const { |
| 88 ASSERT(!has_error_); | 88 DCHECK(!has_error_); |
| 89 return literals_; | 89 return literals_; |
| 90 } | 90 } |
| 91 int properties() const { | 91 int properties() const { |
| 92 ASSERT(!has_error_); | 92 DCHECK(!has_error_); |
| 93 return properties_; | 93 return properties_; |
| 94 } | 94 } |
| 95 StrictMode strict_mode() const { | 95 StrictMode strict_mode() const { |
| 96 ASSERT(!has_error_); | 96 DCHECK(!has_error_); |
| 97 return strict_mode_; | 97 return strict_mode_; |
| 98 } | 98 } |
| 99 int is_reference_error() const { return is_reference_error_; } | 99 int is_reference_error() const { return is_reference_error_; } |
| 100 const char* message() { | 100 const char* message() { |
| 101 ASSERT(has_error_); | 101 DCHECK(has_error_); |
| 102 return message_; | 102 return message_; |
| 103 } | 103 } |
| 104 const char* argument_opt() const { | 104 const char* argument_opt() const { |
| 105 ASSERT(has_error_); | 105 DCHECK(has_error_); |
| 106 return argument_opt_; | 106 return argument_opt_; |
| 107 } | 107 } |
| 108 | 108 |
| 109 private: | 109 private: |
| 110 bool has_error_; | 110 bool has_error_; |
| 111 int start_; | 111 int start_; |
| 112 int end_; | 112 int end_; |
| 113 // For function entries. | 113 // For function entries. |
| 114 int literals_; | 114 int literals_; |
| 115 int properties_; | 115 int properties_; |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 150 int end, | 150 int end, |
| 151 const char* message, | 151 const char* message, |
| 152 const char* argument_opt, | 152 const char* argument_opt, |
| 153 bool is_reference_error_); | 153 bool is_reference_error_); |
| 154 ScriptData* GetScriptData(); | 154 ScriptData* GetScriptData(); |
| 155 | 155 |
| 156 bool HasError() { | 156 bool HasError() { |
| 157 return static_cast<bool>(preamble_[PreparseDataConstants::kHasErrorOffset]); | 157 return static_cast<bool>(preamble_[PreparseDataConstants::kHasErrorOffset]); |
| 158 } | 158 } |
| 159 Vector<unsigned> ErrorMessageData() { | 159 Vector<unsigned> ErrorMessageData() { |
| 160 ASSERT(HasError()); | 160 DCHECK(HasError()); |
| 161 return function_store_.ToVector(); | 161 return function_store_.ToVector(); |
| 162 } | 162 } |
| 163 | 163 |
| 164 private: | 164 private: |
| 165 void WriteString(Vector<const char> str); | 165 void WriteString(Vector<const char> str); |
| 166 | 166 |
| 167 // Write a non-negative number to the symbol store. | 167 // Write a non-negative number to the symbol store. |
| 168 void WriteNumber(int number); | 168 void WriteNumber(int number); |
| 169 | 169 |
| 170 Collector<unsigned> function_store_; | 170 Collector<unsigned> function_store_; |
| 171 unsigned preamble_[PreparseDataConstants::kHeaderSize]; | 171 unsigned preamble_[PreparseDataConstants::kHeaderSize]; |
| 172 | 172 |
| 173 #ifdef DEBUG | 173 #ifdef DEBUG |
| 174 int prev_start_; | 174 int prev_start_; |
| 175 #endif | 175 #endif |
| 176 }; | 176 }; |
| 177 | 177 |
| 178 | 178 |
| 179 } } // namespace v8::internal. | 179 } } // namespace v8::internal. |
| 180 | 180 |
| 181 #endif // V8_PREPARSE_DATA_H_ | 181 #endif // V8_PREPARSE_DATA_H_ |
| OLD | NEW |