#ifndef V8_INIT_V8_H_
#define V8_INIT_V8_H_
#include "src/common/globals.h"
namespace v8 {
struct OOMDetails;
class Platform;
class StartupData;
namespace internal {
class Isolate;
#ifdef OHOS_JS_ENGINE
extern bool rcs_enable;
#endif
class V8 : public AllStatic {
public:
static void Initialize();
static void Dispose();
[[noreturn]] V8_EXPORT_PRIVATE static void FatalProcessOutOfMemory(
Isolate* isolate, const char* location,
const OOMDetails& details = kNoOOMDetails);
V8_EXPORT_PRIVATE static const OOMDetails kNoOOMDetails;
V8_EXPORT_PRIVATE static const OOMDetails kHeapOOM;
static void InitializePlatform(v8::Platform* platform);
V8_EXPORT_PRIVATE static void InitializePlatformForTesting(
v8::Platform* platform);
static void DisposePlatform();
V8_EXPORT_PRIVATE static v8::Platform* GetCurrentPlatform();
V8_EXPORT_PRIVATE static void SetPlatformForTesting(v8::Platform* platform);
static void SetSnapshotBlob(StartupData* snapshot_blob);
private:
static v8::Platform* platform_;
};
}
}
#endif