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_PREPARSE_DATA_FORMAT_H_
6#define V8_PREPARSE_DATA_FORMAT_H_
7
8namespace v8 {
9namespace internal {
10
11// Generic and general data used by preparse data recorders and readers.
12
13struct PreparseDataConstants {
14 public:
15  // Layout and constants of the preparse data exchange format.
16  static const unsigned kMagicNumber = 0xBadDead;
17  static const unsigned kCurrentVersion = 9;
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 kIsReferenceErrorPos = 3;
31  static const int kMessageTextPos = 4;
32
33  static const unsigned char kNumberTerminator = 0x80u;
34};
35
36
37} }  // namespace v8::internal.
38
39#endif  // V8_PREPARSE_DATA_FORMAT_H_
40