i18n support
V8 optionally implements the ECMAScript 402 specification. The API is enabled by default, but can be turned off at compile time.
Prerequisites #
The i18n implementation adds a dependency on ICU. As of v7.2, V8 requires at least ICU version 63. The exact dependency is specified in V8’s DEPS
file.
Run the following command to check out a suitable version of ICU into third_party/icu
:
gclient sync
See “staying up to date” for more details.
Alternative ICU checkout #
You can check out the ICU sources at a different location and define the gyp variable icu_gyp_path
to point at the icu.gyp
file.
System ICU #
Last but not least, you can compile V8 against a version of ICU installed in your system. To do so, specify the GYP variable use_system_icu=1
. If you also have want_separate_host_toolset
enabled, the bundled ICU is still compiled to generate the V8 snapshot. The system ICU is only used for the target architecture.
Embedding V8 #
If you embed V8 in your application, but your application itself doesn’t use ICU, you need to initialize ICU before calling into V8 by executing:
v8::V8::InitializeICU();
It is safe to invoke this method if ICU was not compiled in, then it does nothing.
Compiling without i18n support #
To build V8 without i18n support, use gn args
to set v8_enable_i18n_support = false
before compiling.