Skip to content

Commit

Permalink
src: default --icu_case_mapping on as a v8 option
Browse files Browse the repository at this point in the history
* 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: #9445
PR-URL: #9454
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
  • Loading branch information
srl295 authored and evanlucas committed Nov 7, 2016
1 parent aac4af2 commit b1ef638
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 0 deletions.
8 changes: 8 additions & 0 deletions src/node.cc
Original file line number Diff line number Diff line change
Expand Up @@ -4191,6 +4191,14 @@ void Init(int* argc,
DispatchDebugMessagesAsyncCallback));
uv_unref(reinterpret_cast<uv_handle_t*>(&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
Expand Down
5 changes: 5 additions & 0 deletions test/parallel/test-intl.js
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,11 @@ if (!common.hasIntl) {
return;
}

// Check casing
{
assert.strictEqual('I'.toLocaleLowerCase('tr'), 'ı');
}

// Check with toLocaleString
{
const localeString = dtf.format(date0);
Expand Down

0 comments on commit b1ef638

Please sign in to comment.