| # 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 |
| ``` |