#ifndef V8_V8_H_
#define V8_V8_H_
#if defined(GOOGLE3)
#if defined(DEBUG) && defined(NDEBUG)
#undef NDEBUG
#endif
#endif
#if defined(DEBUG) && defined(NDEBUG)
#error both DEBUG and NDEBUG are set
#endif
#include "../include/v8.h"
#include "v8globals.h"
#include "v8checks.h"
#include "allocation.h"
#include "v8utils.h"
#include "flags.h"
#include "objects-inl.h"
#include "spaces-inl.h"
#include "heap-inl.h"
#include "incremental-marking-inl.h"
#include "mark-compact-inl.h"
#include "log-inl.h"
#include "cpu-profiler-inl.h"
#include "handles-inl.h"
#include "zone-inl.h"
namespace v8 {
namespace internal {
class Deserializer;
class V8 : public AllStatic {
public:
static bool Initialize(Deserializer* des);
static void TearDown();
static bool IsRunning() { return is_running_; }
static bool UseCrankshaft() { return use_crankshaft_; }
static bool IsDead() { return has_fatal_error_ || has_been_disposed_; }
static void SetFatalError();
static void FatalProcessOutOfMemory(const char* location,
bool take_snapshot = false);
static void SetEntropySource(EntropySource source);
static void SetReturnAddressLocationResolver(
ReturnAddressLocationResolver resolver);
static uint32_t Random(Context* context);
static uint32_t RandomPrivate(Isolate* isolate);
static Object* FillHeapNumberWithRandom(Object* heap_number,
Context* context);
static bool IdleNotification(int hint);
static void AddCallCompletedCallback(CallCompletedCallback callback);
static void RemoveCallCompletedCallback(CallCompletedCallback callback);
static void FireCallCompletedCallback(Isolate* isolate);
private:
static void InitializeOncePerProcessImpl();
static void InitializeOncePerProcess();
static bool is_running_;
static bool has_been_set_up_;
static bool has_fatal_error_;
static bool has_been_disposed_;
static bool use_crankshaft_;
static List<CallCompletedCallback>* call_completed_callbacks_;
};
enum NilValue { kNullValue, kUndefinedValue };
enum EqualityKind { kStrictEquality, kNonStrictEquality };
} }
namespace i = v8::internal;
#endif