The data contained in this repository can be downloaded to your computer using one of several clients.
Please see the documentation of your version control software client for more information.

Please select the desired protocol below to get the URL.

This URL has Read-Only access.

Statistics
| Branch: | Revision:

main_repo / deps / v8 / src / v8.h @ 40c0f755

History | View | Annotate | Download (3.3 KB)

1
// Copyright 2006-2008 the V8 project authors. All rights reserved.
2
// Redistribution and use in source and binary forms, with or without
3
// modification, are permitted provided that the following conditions are
4
// met:
5
//
6
//     * Redistributions of source code must retain the above copyright
7
//       notice, this list of conditions and the following disclaimer.
8
//     * Redistributions in binary form must reproduce the above
9
//       copyright notice, this list of conditions and the following
10
//       disclaimer in the documentation and/or other materials provided
11
//       with the distribution.
12
//     * Neither the name of Google Inc. nor the names of its
13
//       contributors may be used to endorse or promote products derived
14
//       from this software without specific prior written permission.
15
//
16
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
20
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27

    
28
//
29
// Top include for all V8 .cc files.
30
//
31

    
32
#ifndef V8_V8_H_
33
#define V8_V8_H_
34

    
35
#if defined(GOOGLE3)
36
// Google3 special flag handling.
37
#if defined(DEBUG) && defined(NDEBUG)
38
// If both are defined in Google3, then we are building an optimized v8 with
39
// assertions enabled.
40
#undef NDEBUG
41
#elif !defined(DEBUG) && !defined(NDEBUG)
42
// If neither is defined in Google3, then we are building a debug v8. Mark it
43
// as such.
44
#define DEBUG
45
#endif
46
#endif  // defined(GOOGLE3)
47

    
48
// V8 only uses DEBUG, but included external files
49
// may use NDEBUG - make sure they are consistent.
50
#if defined(DEBUG) && defined(NDEBUG)
51
#error both DEBUG and NDEBUG are set
52
#endif
53

    
54
// Basic includes
55
#include "../include/v8.h"
56
#include "globals.h"
57
#include "checks.h"
58
#include "allocation.h"
59
#include "utils.h"
60
#include "flags.h"
61

    
62
// Objects & heap
63
#include "objects.h"
64
#include "spaces.h"
65
#include "heap.h"
66
#include "objects-inl.h"
67
#include "spaces-inl.h"
68
#include "heap-inl.h"
69
#include "messages.h"
70

    
71
namespace v8 { namespace internal {
72

    
73
class V8 : public AllStatic {
74
 public:
75
  // Global actions.
76

    
77
  // If Initialize is called with des == NULL, the
78
  // initial state is created from scratch. If a non-null Deserializer
79
  // is given, the initial state is created by reading the
80
  // deserialized data into an empty heap.
81
  static bool Initialize(Deserializer* des);
82
  static void TearDown();
83
  static bool HasBeenSetup() { return has_been_setup_; }
84
  static bool HasBeenDisposed() { return has_been_disposed_; }
85

    
86
  // Report process out of memory. Implementation found in api.cc.
87
  static void FatalProcessOutOfMemory(const char* location);
88
 private:
89
  static bool has_been_setup_;
90
  static bool has_been_disposed_;
91
};
92

    
93
} }  // namespace v8::internal
94

    
95
namespace i = v8::internal;
96

    
97
#endif  // V8_V8_H_