28 #ifndef V8_PREPARSE_DATA_H_
29 #define V8_PREPARSE_DATA_H_
64 const char* argument_opt) = 0;
106 const char* argument_opt);
170 int hash = vector_hash(literal);
176 int hash = vector_hash(literal);
191 virtual void LogSymbol(
int start,
194 Vector<const byte> literal);
196 template <
typename Char>
197 static int vector_hash(Vector<const Char>
string) {
199 for (
int i = 0; i <
string.length(); i++) {
200 int c =
static_cast<int>(
string[i]);
202 hash += (hash << 10);
208 static bool vector_compare(
void* a,
void* b) {
209 Key* string1 =
reinterpret_cast<Key*
>(a);
210 Key* string2 =
reinterpret_cast<Key*
>(b);
211 if (string1->is_ascii != string2->is_ascii)
return false;
212 int length = string1->literal_bytes.length();
213 if (string2->literal_bytes.length() != length)
return false;
214 return memcmp(string1->literal_bytes.start(),
215 string2->literal_bytes.start(), length) == 0;
219 void WriteNumber(
int number);
221 Collector<byte> literal_chars_;
222 Collector<byte> symbol_store_;
223 Collector<Key> symbol_keys_;
231 #endif // V8_PREPARSE_DATA_H_
virtual void LogUtf16Symbol(int start, Vector< const uc16 > literal)
virtual Vector< unsigned > ExtractData()=0
#define ASSERT(condition)
virtual int function_position()
virtual int function_position()=0
virtual Vector< unsigned > ExtractData()
virtual void LogMessage(int start, int end, const char *message, const char *argument_opt)
virtual void LogFunction(int start, int end, int literals, int properties, LanguageMode language_mode)=0
Collector< unsigned > function_store_
FunctionLoggingParserRecorder()
virtual void LogAsciiSymbol(int start, Vector< const char > literal)
virtual ~FunctionLoggingParserRecorder()
virtual int symbol_position()=0
void WriteString(Vector< const char > str)
virtual ~ParserRecorder()
virtual void LogAsciiSymbol(int start, Vector< const char > literal)
virtual void PauseRecording()
virtual void ResumeRecording()=0
virtual void ResumeRecording()
virtual void LogAsciiSymbol(int start, Vector< const char > literal)
unsigned preamble_[PreparseDataConstants::kHeaderSize]
virtual int symbol_position()
virtual ~PartialParserRecorder()
virtual Vector< unsigned > ExtractData()
static const int kHasErrorOffset
virtual ~CompleteParserRecorder()
virtual void PauseRecording()=0
virtual void LogUtf16Symbol(int start, Vector< const uc16 > literal)
TemplateHashMapImpl< FreeStoreAllocationPolicy > HashMap
virtual Vector< unsigned > ExtractData()=0
virtual void LogFunction(int start, int end, int literals, int properties, LanguageMode language_mode)
virtual int symbol_ids()=0
static const int kHeaderSize
virtual void LogMessage(int start, int end, const char *message, const char *argument_opt)=0
virtual int symbol_position()
virtual void LogUtf16Symbol(int start, Vector< const uc16 > literal)