44 lines
1.2 KiB
Markdown
44 lines
1.2 KiB
Markdown
|
# ECMAScript 402
|
||
|
|
||
|
V8 optionally implements the [ECMAScript 402](http://www.ecma-international.org/ecma-402/1.0/) API. The API is enabled by default, but can be turned off at compile time.
|
||
|
|
||
|
|
||
|
## Prerequisites
|
||
|
|
||
|
The i18n implementation adds a dependency on ICU. If you run
|
||
|
|
||
|
```
|
||
|
make dependencies
|
||
|
```
|
||
|
|
||
|
a suitable version of ICU is checked out into `third_party/icu`.
|
||
|
|
||
|
|
||
|
### 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 will still be compiled to generate the V8 snapshot. The system ICU will only be used for the target architecture.
|
||
|
|
||
|
|
||
|
## Embedding V8
|
||
|
|
||
|
If you embed V8 in your application, but your application itself doesn't use ICU, you will 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
|
||
|
|
||
|
```
|
||
|
make i18nsupport=off native
|
||
|
```
|