63#if !defined(V8_INTL_SUPPORT)
66#if ICU_UTIL_DATA_IMPL == ICU_UTIL_DATA_STATIC
69#elif ICU_UTIL_DATA_IMPL == ICU_UTIL_DATA_FILE
70 if (!icu_data_file)
return false;
72 if (g_icu_data_ptr)
return true;
75 if (!inf)
return false;
77 fseek(inf, 0, SEEK_END);
78 size_t size = ftell(inf);
81 g_icu_data_ptr =
new char[
size];
82 if (fread(g_icu_data_ptr, 1, size, inf) != size) {
83 delete[] g_icu_data_ptr;
84 g_icu_data_ptr =
nullptr;
90 atexit(free_icu_data_ptr);
92 UErrorCode err = U_ZERO_ERROR;
93 udata_setCommonData(
reinterpret_cast<void*
>(g_icu_data_ptr), &err);
95 udata_setFileAccess(UDATA_ONLY_PACKAGES, &err);
96 return err == U_ZERO_ERROR;