поддержка i18n
V8 опционально реализует спецификацию ECMAScript 402. API включено по умолчанию, но может быть отключено на этапе компиляции.
Требования
Реализация i18n добавляет зависимость от ICU. Начиная с версии v7.2, V8 требует как минимум ICU версии 63. Точная зависимость указана в файле DEPS
V8.
Выполните следующую команду, чтобы проверить подходящую версию ICU в third_party/icu
:
gclient sync
Подробнее см. в разделе “обновление”.
Альтернативная проверка ICU
Вы можете проверить исходные коды ICU в другом месте и определить переменную gyp icu_gyp_path
, указывающую на файл icu.gyp
.
Системный ICU
И наконец, вы можете скомпилировать V8 с использованием версии ICU, установленной в вашей системе. Для этого укажите переменную GYP use_system_icu=1
. Если также включена опция want_separate_host_toolset
, встроенный ICU всё равно будет скомпилирован для генерации снимка состояния V8. Системный ICU используется только для целевой архитектуры.
Встраивание V8
Если вы встраиваете V8 в своё приложение, но само приложение не использует ICU, вам нужно инициализировать ICU перед вызовом V8, выполнив:
v8::V8::InitializeICU();
Этот метод безопасен для вызова, если ICU не был скомпилирован, в этом случае он ничего не делает.
Компиляция без поддержки i18n
Чтобы собрать V8 без поддержки i18n, используйте gn args
, чтобы установить v8_enable_i18n_support = false
перед компиляцией.