From b1ef638de3e0e0ed45467ce4bf40ef20298f3f9f Mon Sep 17 00:00:00 2001 From: "Steven R. Loomis" Date: Thu, 3 Nov 2016 14:36:19 -0700 Subject: [PATCH] src: default --icu_case_mapping on as a v8 option * toLocaleUpperCase() and toLocaleLowerCase() do not function properly without this flag. * basic test case. The test case would fail if `--no_icu_case_mapping` was set. Fixes: https://github.com/nodejs/node/issues/9445 PR-URL: https://github.com/nodejs/node/pull/9454 Reviewed-By: James M Snell Reviewed-By: Ben Noordhuis --- src/node.cc | 8 ++++++++ test/parallel/test-intl.js | 5 +++++ 2 files changed, 13 insertions(+) diff --git a/src/node.cc b/src/node.cc index fb85af7227f65a..ce49a5c431fd74 100644 --- a/src/node.cc +++ b/src/node.cc @@ -4191,6 +4191,14 @@ void Init(int* argc, DispatchDebugMessagesAsyncCallback)); uv_unref(reinterpret_cast(&dispatch_debug_messages_async)); +#if defined(NODE_HAVE_I18N_SUPPORT) + // Set the ICU casing flag early + // so the user can disable a flag --foo at run-time by passing + // --no_foo from the command line. + const char icu_case_mapping[] = "--icu_case_mapping"; + V8::SetFlagsFromString(icu_case_mapping, sizeof(icu_case_mapping) - 1); +#endif + #if defined(NODE_V8_OPTIONS) // Should come before the call to V8::SetFlagsFromCommandLine() // so the user can disable a flag --foo at run-time by passing diff --git a/test/parallel/test-intl.js b/test/parallel/test-intl.js index 938099f2e3c6b9..1058650830d084 100644 --- a/test/parallel/test-intl.js +++ b/test/parallel/test-intl.js @@ -50,6 +50,11 @@ if (!common.hasIntl) { return; } + // Check casing + { + assert.strictEqual('I'.toLocaleLowerCase('tr'), 'ı'); + } + // Check with toLocaleString { const localeString = dtf.format(date0);