78 static void SetSnapshotDataBlob(
StartupData* startup_blob);
92 static void SetFlagsFromString(
const char* str);
93 static void SetFlagsFromString(
const char* str,
size_t length);
98 static void SetFlagsFromCommandLine(
int* argc,
char** argv,
102 static const char* GetVersion();
109#ifdef V8_TARGET_OS_ANDROID
110 const bool kV8TargetOsIsAndroid =
true;
112 const bool kV8TargetOsIsAndroid =
false;
115#ifdef V8_ENABLE_CHECKS
116 const bool kV8EnableChecks =
true;
118 const bool kV8EnableChecks =
false;
121 const int kBuildConfiguration =
122 (internal::PointerCompressionIsEnabled() ? kPointerCompression : 0) |
123 (internal::SmiValuesAre31Bits() ? k31BitSmis : 0) |
124 (internal::SandboxIsEnabled() ? kSandbox : 0) |
125 (kV8TargetOsIsAndroid ? kTargetOsIsAndroid : 0) |
126 (kV8EnableChecks ? kEnableChecks : 0);
127 return Initialize(kBuildConfiguration);
140 static void SetReturnAddressLocationResolver(
152 static bool Dispose();
161 static bool InitializeICU(
const char* icu_data_file =
nullptr);
175 static bool InitializeICUDefaultLocation(
const char* exec_path,
176 const char* icu_data_file =
nullptr);
193 static void InitializeExternalStartupData(
const char* directory_path);
194 static void InitializeExternalStartupDataFromFile(
const char* snapshot_blob);
200 static void InitializePlatform(
Platform* platform);
206 static void DisposePlatform();
208#if defined(V8_ENABLE_SANDBOX)
219 static bool IsSandboxConfiguredSecurely();
241 static size_t GetSandboxSizeInBytes();
253 static size_t GetSandboxReservationSizeInBytes();
262 static bool EnableWebAssemblyTrapHandler(
bool use_v8_signal_handler);
264#if defined(V8_OS_WIN)
274 static void SetUnhandledExceptionCallback(
275 UnhandledExceptionCallback
callback);
294 kPointerCompression = 1 << 0,
297 kTargetOsIsAndroid = 1 << 3,
298 kEnableChecks = 1 << 4,
305 static bool Initialize(
int build_config);
308 template <
class K,
class V,
class T>