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 3 // found in the LICENSE file. 4 5 #ifndef V8_PARSING_PREPARSE_DATA_FORMAT_H_ 6 #define V8_PARSING_PREPARSE_DATA_FORMAT_H_ 7 8 namespace v8 { 9 namespace internal { 10 11 // Generic and general data used by preparse data recorders and readers. 12 13 struct PreparseDataConstants { 14 public: 15 // Layout and constants of the preparse data exchange format. 16 static const unsigned kMagicNumber = 0xBadDead; 17 static const unsigned kCurrentVersion = 11; 18 19 static const int kMagicOffset = 0; 20 static const int kVersionOffset = 1; 21 static const int kHasErrorOffset = 2; 22 static const int kFunctionsSizeOffset = 3; 23 static const int kSizeOffset = 4; 24 static const int kHeaderSize = 5; 25 26 // If encoding a message, the following positions are fixed. 27 static const int kMessageStartPos = 0; 28 static const int kMessageEndPos = 1; 29 static const int kMessageArgCountPos = 2; 30 static const int kParseErrorTypePos = 3; 31 static const int kMessageTemplatePos = 4; 32 static const int kMessageArgPos = 5; 33 34 static const unsigned char kNumberTerminator = 0x80u; 35 }; 36 37 38 } // namespace internal 39 } // namespace v8. 40 41 #endif // V8_PARSING_PREPARSE_DATA_FORMAT_H_ 42