[intl] Fall back on an invalid default locale to "und"
The default locale can be changed in some environments with environment variables. These environment variables used to allow the system to get into an invalid state, where the default locale was unsupported. This patch detects that case and falls back to "und" as the default locale if there is an Intl service which does not support the locale that ICU reports as the default. It also has a slight cleanup of surrounding code. I haven't gone through the work to set up an automated test, as triggering the case requires setting environment variables, which our tests don't tend to do, but I tested interactively as follows: dehrenberg@dehrenberg:~/v8/v8$ LC_ALL="tlh-FR" rlwrap out/Release/d8 V8 version 5.7.0 (candidate) d8> new Intl.NumberFormat("foo").resolvedOptions().locale "und" d8> new Intl.NumberFormat().resolvedOptions().locale "und" d8> dehrenberg@dehrenberg:~/v8/v8$ LC_ALL="de" rlwrap out/Release/d8 V8 version 5.7.0 (candidate) d8> new Intl.NumberFormat().resolvedOptions().locale "de" d8> new Intl.NumberFormat("foo").resolvedOptions().locale "de" d8> BUG=v8:4216 Review-Url: https://codereview.chromium.org/2646593002 Cr-Commit-Position: refs/heads/master@{#43253}
Showing
Please
register
or
sign in
to comment