Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(458)

Issue 1812673005: Use ICU case conversion/transliterator for case conversion behind a flag (Closed)

Created:
4 years, 9 months ago by jungshik at Google
Modified:
4 years, 4 months ago
CC:
Michael Hablich, v8-reviews_googlegroups.com
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

Use ICU case conversion/transliterator for case conversion When I18N is enabled, use ICU's case conversion API and transliteration API [1] to implement String.prototype.to{Upper,Lower}Case and String.prototype.toLocale{Upper,Lower}Case. * ICU-based case conversion was implemented in runtime-i18n.cc/i18n.js * The above 4 functions are overridden with those in i18n.js when --icu_case_mapping flag is turned on. To control the override by the flag, they're overriden in icu-case-mapping.js Previously, toLocale{U,L}Case just called to{U,L}Case so that they didn't support locale-sensitive case conversion for Turkic languages (az, tr), Greek (el) and Lithuanian (lt). Before ICU APIs for the most general case are called, a fast-path for Latin-1 is tried. It's taken from Blink and adopted as necessary. This fast path is always tried for to{U,L}Case. For toLocale{U,L}Case, it's only taken when a locale (explicitly specified or default) is not in {az, el, lt, tr}. With these changes, a build with --icu_case_mapping=true passes a bunch of tests in test262/intl402/Strings/* and intl/* that failed before. Handling of pure ASCII strings (aligned at word boundary) are not as fast as Unibrow's implementation that uses word-by-word case conversion. OTOH, Latin-1 input handling is faster than Unibrow. General Unicode input handling is slower but more accurate. See https://docs.google.com/spreadsheets/d/1KJCJxKc1FxFXjwmYqABS0_2cNdPetvnd8gY8_HGSbrg/edit?usp=sharing for the benchmark. This CL started with http://crrev.com/1544023002#ps200001 by littledan@, but has changed significantly since. [1] See why transliteration API is needed for uppercasing in Greek. http://bugs.icu-project.org/trac/ticket/10582 R=yangguo BUG=v8:4476, v8:4477 LOG=Y TEST=test262/{built-ins,intl402}/Strings/*, webkit/fast/js/*, mjsunit/string-case, intl/general/case* Committed: https://crrev.com/b348d47bb94399045394bf4743c0c8c35328923b Cr-Commit-Position: refs/heads/master@{#36187}

Patch Set 1 : patch copied from Dan's CL #

Patch Set 2 : use UnicodeString to simplify #

Patch Set 3 : do not use a macro #

Patch Set 4 : working now with HandleChecked #

Total comments: 3

Patch Set 5 : add tests; fix the implementation; fix typos in testcfg #

Patch Set 6 : checkpoint: use Flatten - not working #

Patch Set 7 : Use CharCopy(); GetFlatContent still crashes #

Total comments: 1

Patch Set 8 : remove goto; GetFlatContent still crashes #

Total comments: 2

Patch Set 9 : isolate DisallowAllocation #

Patch Set 10 : add a test with U+00FF #

Total comments: 2

Patch Set 11 : move to i18n; not yet working #

Patch Set 12 : checkpoint: build still failing - unbound variable #

Patch Set 13 : both to{U,L}Case and toLocale{U,L}Case working #

Patch Set 14 : canonicalize |locales| and refactor: also use "lt" instead of "li" #

Patch Set 15 : typo fix: li -> lt #

Patch Set 16 : use transliterator for case conversion of Greek/Lithuanian #

Total comments: 1

Patch Set 17 : a bit more clean-up #

Patch Set 18 : lt: do not use transliterator #

Patch Set 19 : speed up toLocale*Case by 80% #

Patch Set 20 : add back case conversion tests under no-i18n #

Patch Set 21 : drop an entry added by mistake in test.status file #

Patch Set 22 : optimize canonicalizeLanguageTag for the most common case #

Patch Set 23 : get DisallowHeapAllocation out of "anon" block and use copy-on-write ctor for UnicodeString for bet… #

Total comments: 2

Patch Set 24 : enclose DisallowAllocation inside a block again #

Patch Set 25 : extend the DisallowAllocation block #

Patch Set 26 : fix an issue due to |sap| going out of scope #

Patch Set 27 : use fastCopyFrom for UnicodeString: a minor optimization #

Patch Set 28 : port back cl 1875263006 PS#8; use C API with do-while and DisallowHeapAlloc in the loop #

Total comments: 1

Patch Set 29 : fix mjsunit test; use GetFlatContents in fast path, too; 20% speed-up for ToLowerCase #

Patch Set 30 : string-capitalization-expected.txt : fix #

Patch Set 31 : fix string-capitalization-expected.txt #

Patch Set 32 : more optimization; ToLatin1{Upper,Lower} #

Patch Set 33 : use FlatContent for uppercase; add 3 templatized helpers #

Total comments: 26

Patch Set 34 : Dan's review comments addressed #

Patch Set 35 : drop parallel arrays. pass locale name as a string from JS to runtime #

Patch Set 36 : rebased: dropped unnecesary Wno-c99-extensions from gypi #

Total comments: 2

Patch Set 37 : trival change: unnecessary line dropped #

Total comments: 21

Patch Set 38 : do not use strcmp !! #

Patch Set 39 : use the table for Latin1-Lowercasing; still slower than word-by-word conversion in Unibrow for ASCI… #

Patch Set 40 : Addressed Yang's review comments #

Patch Set 41 : Use Flags for icu_case_mapping in case_mapping.js; a bit clean up in C++ #

Patch Set 42 : copy buffer to UnicodeString explicitly #

Patch Set 43 : wip: Move to{Lower,Upper}Case override to icu-case-mapping.js #

Patch Set 44 : working with icu-case-mapping.js manually compiled in; gyp change not picking it up #

Total comments: 16

Patch Set 45 : NEG_IMPL. => IMPL(es_stage, icu_case_mapping) #

Patch Set 46 : rebased #

Patch Set 47 : Address Yang's comments #

Patch Set 48 : mark tests failing without icu_case_mapping as FAIL in test.status files #

Patch Set 49 : mark webkit/../string-capitalization as FAIL because a fix is behind a flag #

Patch Set 50 : use read-alias setTo for UnicodeString and add more tests #

Patch Set 51 : windows compile fix: use reinterpret_cast for uc16* => UChar* #

Total comments: 1

Patch Set 52 : a bit more tweak with buffer extraction #

Total comments: 4

Patch Set 53 : move toLocale{U,L}Case behind --icu-case-mapping, too; adjust test status accordingly. roll back st… #

Total comments: 4

Patch Set 54 : use utils.import and add a new test to the fail list (passes with --icu_case_mapping) #

Patch Set 55 : more efficient overrides of to{Lower,Upper}Case #

Patch Set 56 : change the way toLocale*Case is overriden; still failing S15.5.4.16_A6 test #

Patch Set 57 : remove function prototypes for to*Case #

Total comments: 2

Patch Set 58 : Dan's comment addressed #

Total comments: 5

Patch Set 59 : Address Yang's comment. the feature is now harmony_in_progress instead of harmony_staged #

Total comments: 7

Patch Set 60 : Flags:// --icu_..: working #

Patch Set 61 : Address Yang's comment #

Total comments: 2

Patch Set 62 : rebased and build fixed #

Patch Set 63 : Yang's comment addressed - return right away for no-change #

Total comments: 4
Unified diffs Side-by-side diffs Delta from patch set Stats (+690 lines, -38 lines) Patch
M BUILD.gn View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 1 chunk +4 lines, -0 lines 0 comments Download
M src/bootstrapper.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 2 chunks +7 lines, -0 lines 0 comments Download
M src/flag-definitions.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 1 chunk +10 lines, -0 lines 0 comments Download
M src/js/i18n.js View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 5 chunks +97 lines, -10 lines 3 comments Download
A src/js/icu-case-mapping.js View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 1 chunk +24 lines, -0 lines 0 comments Download
M src/js/prologue.js View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 1 chunk +4 lines, -0 lines 0 comments Download
M src/objects.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 1 chunk +6 lines, -6 lines 0 comments Download
M src/runtime/runtime.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 1 chunk +4 lines, -1 line 0 comments Download
M src/runtime/runtime-i18n.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 2 chunks +356 lines, -0 lines 1 comment Download
M src/runtime/runtime-strings.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 2 chunks +2 lines, -2 lines 0 comments Download
M src/v8.gyp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 7 chunks +7 lines, -16 lines 0 comments Download
A test/intl/general/case-mapping.js View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 1 chunk +138 lines, -0 lines 0 comments Download
M test/intl/testcfg.py View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 3 chunks +10 lines, -0 lines 0 comments Download
M test/test262/test262.status View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 2 chunks +21 lines, -3 lines 0 comments Download

Messages

Total messages: 149 (48 generated)
Dan Ehrenberg
https://codereview.chromium.org/1812673005/diff/60001/test/intl/testcfg.py File test/intl/testcfg.py (right): https://codereview.chromium.org/1812673005/diff/60001/test/intl/testcfg.py#newcode57 test/intl/testcfg.py:57: flags = ["--allow-natives-syntax", "--icu-case-mapping"] + \ BTW other testcfg.py's ...
4 years, 9 months ago (2016-03-17 20:38:36 UTC) #2
jungshik at Google
In the latest patch set, I addressed Yang's comments (from https://codereview.chromium.org/1544023002 ; compare ps#1 and ...
4 years, 8 months ago (2016-04-07 18:57:11 UTC) #3
jungshik at Google
On 2016/04/07 18:57:11, jshin (jungshik at google) wrote: > In the latest patch set, I ...
4 years, 8 months ago (2016-04-07 19:41:43 UTC) #4
adamk
Some answers about GetFlatContent... https://codereview.chromium.org/1812673005/diff/140001/src/runtime/runtime-strings.cc File src/runtime/runtime-strings.cc (right): https://codereview.chromium.org/1812673005/diff/140001/src/runtime/runtime-strings.cc#newcode1094 src/runtime/runtime-strings.cc:1094: String::FlatContent flat = s->GetFlatContent(); You'll ...
4 years, 8 months ago (2016-04-07 20:50:55 UTC) #6
jungshik at Google
On 2016/04/07 20:50:55, adamk wrote: > Some answers about GetFlatContent... > > https://codereview.chromium.org/1812673005/diff/140001/src/runtime/runtime-strings.cc > File ...
4 years, 8 months ago (2016-04-07 22:56:31 UTC) #7
jungshik at Google
Forgot to ask for another look. All the tests (that have been disabled) now pass ...
4 years, 8 months ago (2016-04-08 18:09:33 UTC) #8
jungshik at Google
I have a new plan. I'd rather fix both to{Upper,Lower}Case (locale-independent / root locale) and ...
4 years, 8 months ago (2016-04-08 19:44:42 UTC) #9
Dan Ehrenberg
Alright, overwriting SGTM. https://codereview.chromium.org/1812673005/diff/60001/test/intl/testcfg.py File test/intl/testcfg.py (right): https://codereview.chromium.org/1812673005/diff/60001/test/intl/testcfg.py#newcode57 test/intl/testcfg.py:57: flags = ["--allow-natives-syntax", "--icu-case-mapping"] + \ ...
4 years, 8 months ago (2016-04-08 21:13:46 UTC) #10
jungshik at Google
https://codereview.chromium.org/1812673005/diff/300001/src/runtime/runtime-i18n.cc File src/runtime/runtime-i18n.cc (right): https://codereview.chromium.org/1812673005/diff/300001/src/runtime/runtime-i18n.cc#newcode819 src/runtime/runtime-i18n.cc:819: false, reinterpret_cast<const UChar*>(*string_value), length); a question: Using this public ...
4 years, 8 months ago (2016-04-11 17:47:30 UTC) #11
jungshik at Google
On 2016/04/11 17:47:30, jshin (jungshik at google) wrote: > https://codereview.chromium.org/1812673005/diff/300001/src/runtime/runtime-i18n.cc > File src/runtime/runtime-i18n.cc (right): > ...
4 years, 8 months ago (2016-04-12 22:52:34 UTC) #15
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1812673005/440001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1812673005/440001
4 years, 8 months ago (2016-04-13 04:56:41 UTC) #17
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux64_asan_rel_ng on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux64_asan_rel_ng/builds/34) v8_linux64_asan_rel_ng_triggered on ...
4 years, 8 months ago (2016-04-13 05:11:02 UTC) #19
jungshik at Google
PS #23 failed in a debug build because of heap allocation with DisAllowHeapAllocation in effect. ...
4 years, 8 months ago (2016-04-13 17:34:35 UTC) #20
Dan Ehrenberg
https://codereview.chromium.org/1812673005/diff/440001/src/runtime/runtime-i18n.cc File src/runtime/runtime-i18n.cc (right): https://codereview.chromium.org/1812673005/diff/440001/src/runtime/runtime-i18n.cc#newcode784 src/runtime/runtime-i18n.cc:784: DisallowHeapAllocation no_gc; On 2016/04/13 at 17:34:34, jshin (jungshik at ...
4 years, 8 months ago (2016-04-13 17:43:43 UTC) #21
jungshik at Google
On 2016/04/13 17:43:43, Dan Ehrenberg wrote: > https://codereview.chromium.org/1812673005/diff/440001/src/runtime/runtime-i18n.cc > File src/runtime/runtime-i18n.cc (right): > > https://codereview.chromium.org/1812673005/diff/440001/src/runtime/runtime-i18n.cc#newcode784 ...
4 years, 8 months ago (2016-04-14 00:23:18 UTC) #22
Dan Ehrenberg
On 2016/04/14 at 00:23:18, jshin wrote: > On 2016/04/13 17:43:43, Dan Ehrenberg wrote: > > ...
4 years, 8 months ago (2016-04-14 02:30:12 UTC) #23
jungshik at Google
PS #24 and PS #25 do not have a crash issue that I have with ...
4 years, 8 months ago (2016-04-14 09:05:09 UTC) #24
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1812673005/540001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1812673005/540001
4 years, 8 months ago (2016-04-15 09:45:58 UTC) #26
jungshik at Google
https://codereview.chromium.org/1812673005/diff/540001/src/js/i18n.js File src/js/i18n.js (right): https://codereview.chromium.org/1812673005/diff/540001/src/js/i18n.js#newcode2082 src/js/i18n.js:2082: OverrideFunction(GlobalString.prototype, 'toLowerCase', function() { Dan, can you give me ...
4 years, 8 months ago (2016-04-15 09:51:30 UTC) #27
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux_nodcheck_rel_ng on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_nodcheck_rel_ng/builds/207) v8_linux_nodcheck_rel_ng_triggered on ...
4 years, 8 months ago (2016-04-15 10:03:20 UTC) #29
jungshik at Google
On 2016/04/15 10:03:20, commit-bot: I haz the power wrote: > Dry run: Try jobs failed ...
4 years, 8 months ago (2016-04-15 17:50:05 UTC) #30
Dan Ehrenberg
On 2016/04/15 at 17:50:05, jshin wrote: > On 2016/04/15 10:03:20, commit-bot: I haz the power ...
4 years, 8 months ago (2016-04-15 18:02:30 UTC) #31
jungshik at Google
On 2016/04/15 18:02:30, Dan Ehrenberg wrote: > On 2016/04/15 at 17:50:05, jshin wrote: Thanks, Dan, ...
4 years, 8 months ago (2016-04-15 19:13:26 UTC) #32
Dan Ehrenberg
On 2016/04/15 at 19:13:26, jshin wrote: > On 2016/04/15 18:02:30, Dan Ehrenberg wrote: > > ...
4 years, 8 months ago (2016-04-15 20:25:04 UTC) #33
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1812673005/560001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1812673005/560001
4 years, 8 months ago (2016-04-18 22:47:57 UTC) #35
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux64_avx2_rel_ng on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux64_avx2_rel_ng/builds/333) v8_linux64_avx2_rel_ng_triggered on ...
4 years, 8 months ago (2016-04-18 23:04:10 UTC) #37
jungshik at Google
On 2016/04/15 20:25:04, Dan Ehrenberg wrote: > On 2016/04/15 at 19:13:26, jshin wrote: > https://build.chromium.org/p/tryserver.v8/builders/v8_win_nosnap_shared_rel_ng_triggered/builds/272/steps/Check/logs/string-capitalization ...
4 years, 8 months ago (2016-04-19 00:13:32 UTC) #38
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1812673005/600001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1812673005/600001
4 years, 8 months ago (2016-04-19 00:13:59 UTC) #40
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 8 months ago (2016-04-19 00:44:32 UTC) #42
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1812673005/620001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1812673005/620001
4 years, 8 months ago (2016-04-19 08:51:11 UTC) #44
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 8 months ago (2016-04-19 09:16:04 UTC) #46
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1812673005/640001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1812673005/640001
4 years, 8 months ago (2016-04-20 09:22:56 UTC) #48
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 8 months ago (2016-04-20 09:47:19 UTC) #50
jungshik at Google
Hi Dan, Adam, and Yang Can you take a look? Putting this behind the flag ...
4 years, 8 months ago (2016-04-20 21:29:22 UTC) #52
Dan Ehrenberg
https://codereview.chromium.org/1812673005/diff/640001/src/js/i18n.js File src/js/i18n.js (right): https://codereview.chromium.org/1812673005/diff/640001/src/js/i18n.js#newcode728 src/js/i18n.js:728: if ((typeof localeID !== 'string' && typeof localeID !== ...
4 years, 8 months ago (2016-04-20 22:01:30 UTC) #53
jungshik at Google
Thanks a lot for the review. I addressed your comments. One remaining question is how ...
4 years, 8 months ago (2016-04-21 20:39:17 UTC) #54
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1812673005/680001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1812673005/680001
4 years, 8 months ago (2016-04-22 22:57:16 UTC) #56
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux_arm_rel_ng on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_arm_rel_ng/builds/632) v8_linux_dbg_ng on ...
4 years, 8 months ago (2016-04-22 22:58:47 UTC) #58
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1812673005/700001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1812673005/700001
4 years, 8 months ago (2016-04-23 00:05:01 UTC) #60
jungshik at Google
On 2016/04/21 20:39:17, jshin (jungshik at google) wrote: > Thanks a lot for the review. ...
4 years, 8 months ago (2016-04-23 00:12:11 UTC) #61
jungshik at Google
Another question: If this has to be put behind a flag (icu_case_mapping), how can I ...
4 years, 8 months ago (2016-04-23 00:14:32 UTC) #62
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 8 months ago (2016-04-23 00:46:11 UTC) #64
Dan Ehrenberg
To make loading some code conditional on a runtime flag, follow the pattern of --promise-extras. ...
4 years, 8 months ago (2016-04-25 21:10:11 UTC) #65
jungshik at Google
Thanks, Dan, for the comment and pointers. Micro-benchmark results are up at https://docs.google.com/spreadsheets/d/1KJCJxKc1FxFXjwmYqABS0_2cNdPetvnd8gY8_HGSbrg/edit?usp=sharing ASCII-only lower/uppercasing ...
4 years, 8 months ago (2016-04-26 23:07:34 UTC) #66
Dan Ehrenberg
On 2016/04/26 at 23:07:34, jshin wrote: > Thanks, Dan, for the comment and pointers. > ...
4 years, 8 months ago (2016-04-26 23:39:04 UTC) #67
Yang
Very nice patch. I have some comments though. https://codereview.chromium.org/1812673005/diff/720001/src/js/i18n.js File src/js/i18n.js (right): https://codereview.chromium.org/1812673005/diff/720001/src/js/i18n.js#newcode2015 src/js/i18n.js:2015: if ...
4 years, 7 months ago (2016-04-27 08:06:45 UTC) #69
jungshik at Google
On 2016/04/26 23:39:04, Dan Ehrenberg wrote: > On 2016/04/26 at 23:07:34, jshin wrote: > > ...
4 years, 7 months ago (2016-04-28 07:43:06 UTC) #70
jungshik at Google
Addressed and replied to Yang's comment. Thanks ! https://codereview.chromium.org/1812673005/diff/720001/src/js/i18n.js File src/js/i18n.js (right): https://codereview.chromium.org/1812673005/diff/720001/src/js/i18n.js#newcode2015 src/js/i18n.js:2015: if ...
4 years, 7 months ago (2016-04-28 10:50:10 UTC) #71
Yang
https://codereview.chromium.org/1812673005/diff/720001/src/runtime/runtime-i18n.cc File src/runtime/runtime-i18n.cc (right): https://codereview.chromium.org/1812673005/diff/720001/src/runtime/runtime-i18n.cc#newcode787 src/runtime/runtime-i18n.cc:787: String::FlatContent flat = s->GetFlatContent(); On 2016/04/28 10:50:09, jshin (jungshik ...
4 years, 7 months ago (2016-04-28 12:52:26 UTC) #72
jungshik at Google
On 2016/04/28 12:52:26, Yang wrote: > https://codereview.chromium.org/1812673005/diff/720001/src/runtime/runtime-i18n.cc > File src/runtime/runtime-i18n.cc (right): > > https://codereview.chromium.org/1812673005/diff/720001/src/runtime/runtime-i18n.cc#newcode787 > ...
4 years, 7 months ago (2016-04-28 20:19:33 UTC) #73
jungshik at Google
+jochen for v8.gyp changes. Jochen, could you enlighten me as to why icu-case-mapping.js (that is ...
4 years, 7 months ago (2016-04-29 06:23:17 UTC) #75
jungshik at Google
https://codereview.chromium.org/1812673005/diff/860001/src/flag-definitions.h File src/flag-definitions.h (right): https://codereview.chromium.org/1812673005/diff/860001/src/flag-definitions.h#newcode184 src/flag-definitions.h:184: DEFINE_NEG_IMPLICATION(es_staging, icu_case_mapping) I noticed that https://codereview.chromium.org/1513873002/ has a comment ...
4 years, 7 months ago (2016-04-29 06:55:32 UTC) #76
jochen (gone - plz use gerrit)
https://codereview.chromium.org/1812673005/diff/860001/tools/gyp/v8.gyp File tools/gyp/v8.gyp (right): https://codereview.chromium.org/1812673005/diff/860001/tools/gyp/v8.gyp#newcode1971 tools/gyp/v8.gyp:1971: }, { this file doesn't exist anymore, it's now ...
4 years, 7 months ago (2016-04-29 06:58:09 UTC) #77
jungshik at Google
Thank you for the reply. On 2016/04/29 06:58:09, jochen wrote: > https://codereview.chromium.org/1812673005/diff/860001/tools/gyp/v8.gyp > File tools/gyp/v8.gyp ...
4 years, 7 months ago (2016-04-29 07:23:30 UTC) #78
Yang
https://codereview.chromium.org/1812673005/diff/860001/src/bootstrapper.cc File src/bootstrapper.cc (right): https://codereview.chromium.org/1812673005/diff/860001/src/bootstrapper.cc#newcode203 src/bootstrapper.cc:203: DECLARE_FEATURE_INITIALIZATION(icu_case_mapping, "") Is this necessary? We declare it here, ...
4 years, 7 months ago (2016-04-29 07:38:47 UTC) #79
jungshik at Google
On 2016/04/29 07:23:30, jshin (jungshik at google) wrote: > On 2016/04/29 06:58:09, jochen wrote: > ...
4 years, 7 months ago (2016-04-29 08:42:40 UTC) #80
jungshik at Google
Yang, thanks for taking a look. I addressed your comments. https://codereview.chromium.org/1812673005/diff/860001/src/bootstrapper.cc File src/bootstrapper.cc (right): https://codereview.chromium.org/1812673005/diff/860001/src/bootstrapper.cc#newcode203 ...
4 years, 7 months ago (2016-04-29 18:03:23 UTC) #81
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1812673005/940001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1812673005/940001
4 years, 7 months ago (2016-04-29 19:54:11 UTC) #83
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_win64_rel_ng on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_win64_rel_ng/builds/6634) v8_win_rel_ng on ...
4 years, 7 months ago (2016-04-29 19:59:03 UTC) #85
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1812673005/960001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1812673005/960001
4 years, 7 months ago (2016-04-29 21:25:27 UTC) #87
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_win_compile_dbg on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_win_compile_dbg/builds/16811) v8_win_rel_ng on ...
4 years, 7 months ago (2016-04-29 21:30:18 UTC) #89
jungshik at Google
https://codereview.chromium.org/1812673005/diff/1000001/src/runtime/runtime-i18n.cc File src/runtime/runtime-i18n.cc (right): https://codereview.chromium.org/1812673005/diff/1000001/src/runtime/runtime-i18n.cc#newcode802 src/runtime/runtime-i18n.cc:802: converted.setTo(false, src, src_length); Yang, https://docs.google.com/spreadsheets/d/19FCu-uk48FT7NCvMxRWgsnrCc06iON79Uni4a8POiog/edit?usp=sharing compares various combinations of ...
4 years, 7 months ago (2016-04-29 23:41:43 UTC) #90
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1812673005/1000001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1812673005/1000001
4 years, 7 months ago (2016-04-30 00:04:28 UTC) #92
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 7 months ago (2016-04-30 00:27:02 UTC) #94
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1812673005/1020001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1812673005/1020001
4 years, 7 months ago (2016-05-02 22:10:22 UTC) #96
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux64_avx2_rel_ng on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux64_avx2_rel_ng/builds/1042) v8_linux64_avx2_rel_ng_triggered on ...
4 years, 7 months ago (2016-05-02 22:27:52 UTC) #98
Dan Ehrenberg
https://codereview.chromium.org/1812673005/diff/860001/src/bootstrapper.cc File src/bootstrapper.cc (right): https://codereview.chromium.org/1812673005/diff/860001/src/bootstrapper.cc#newcode203 src/bootstrapper.cc:203: DECLARE_FEATURE_INITIALIZATION(icu_case_mapping, "") On 2016/04/29 at 18:03:23, jshin (jungshik at ...
4 years, 7 months ago (2016-05-03 17:58:17 UTC) #99
Dan Ehrenberg
As we've discussed off-line, the main TODO item is to move all behavior changes from ...
4 years, 7 months ago (2016-05-03 21:24:10 UTC) #100
jungshik at Google
Thank you, Dan for the review and help. Now both to{L,U}Case and toLocale{L,U}Case are behind ...
4 years, 7 months ago (2016-05-03 22:16:00 UTC) #101
Dan Ehrenberg
https://codereview.chromium.org/1812673005/diff/1040001/src/js/icu-case-mapping.js File src/js/icu-case-mapping.js (right): https://codereview.chromium.org/1812673005/diff/1040001/src/js/icu-case-mapping.js#newcode13 src/js/icu-case-mapping.js:13: var LocaleConvertCase = utils.ImportNow("LocaleConvertCase"); Rather than using ImportNow (generally ...
4 years, 7 months ago (2016-05-04 00:13:08 UTC) #102
jungshik at Google
https://codereview.chromium.org/1812673005/diff/1040001/src/js/icu-case-mapping.js File src/js/icu-case-mapping.js (right): https://codereview.chromium.org/1812673005/diff/1040001/src/js/icu-case-mapping.js#newcode13 src/js/icu-case-mapping.js:13: var LocaleConvertCase = utils.ImportNow("LocaleConvertCase"); On 2016/05/04 00:13:08, Dan Ehrenberg ...
4 years, 7 months ago (2016-05-04 19:02:58 UTC) #103
jungshik at Google
4 years, 7 months ago (2016-05-04 19:03:07 UTC) #104
Dan Ehrenberg
https://codereview.chromium.org/1812673005/diff/1040001/src/js/icu-case-mapping.js File src/js/icu-case-mapping.js (right): https://codereview.chromium.org/1812673005/diff/1040001/src/js/icu-case-mapping.js#newcode19 src/js/icu-case-mapping.js:19: OverrideFunction(GlobalString.prototype, 'toLowerCase', function() { On 2016/05/04 at 19:02:58, jshin ...
4 years, 7 months ago (2016-05-04 19:06:37 UTC) #105
jungshik at Google
On 2016/05/04 19:06:37, Dan Ehrenberg wrote: > https://codereview.chromium.org/1812673005/diff/1040001/src/js/icu-case-mapping.js > File src/js/icu-case-mapping.js (right): > > https://codereview.chromium.org/1812673005/diff/1040001/src/js/icu-case-mapping.js#newcode19 ...
4 years, 7 months ago (2016-05-04 22:03:22 UTC) #106
Dan Ehrenberg
On 2016/05/04 at 22:03:22, jshin wrote: > On 2016/05/04 19:06:37, Dan Ehrenberg wrote: > > ...
4 years, 7 months ago (2016-05-04 22:27:17 UTC) #107
jungshik at Google
On 2016/05/04 22:27:17, Dan Ehrenberg wrote: > On 2016/05/04 at 22:03:22, jshin wrote: > > ...
4 years, 7 months ago (2016-05-05 00:33:30 UTC) #108
jungshik at Google
On 2016/05/05 00:33:30, jshin (jungshik at google) wrote: > On 2016/05/04 22:27:17, Dan Ehrenberg wrote: ...
4 years, 7 months ago (2016-05-05 17:54:34 UTC) #109
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1812673005/1120001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1812673005/1120001
4 years, 7 months ago (2016-05-05 19:45:08 UTC) #111
jungshik at Google
On 2016/05/05 17:54:34, jshin (jungshik at google) wrote: > > /usr/local/google/home/jungshik/v8/v8/test/test262/data/harness/sta.js:18: > > Test262Error: #1: ...
4 years, 7 months ago (2016-05-05 19:47:21 UTC) #112
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 7 months ago (2016-05-05 20:16:03 UTC) #116
Dan Ehrenberg
lgtm +machenbach for build file changes. This patch looks good to me, but I'd hold ...
4 years, 7 months ago (2016-05-05 23:36:57 UTC) #118
Michael Achenbach
build files lgtm
4 years, 7 months ago (2016-05-06 08:25:17 UTC) #119
jungshik at Google
Thanks, Dan and Michael. Yang, can you take another look? Thanks ! https://codereview.chromium.org/1812673005/diff/1120001/test/intl/testcfg.py File test/intl/testcfg.py ...
4 years, 7 months ago (2016-05-06 21:51:18 UTC) #120
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1812673005/1140001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1812673005/1140001
4 years, 7 months ago (2016-05-09 18:46:11 UTC) #122
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 7 months ago (2016-05-09 19:16:26 UTC) #124
jungshik at Google
On 2016/05/05 23:36:57, Dan Ehrenberg wrote: > lgtm > > +machenbach for build file changes. ...
4 years, 7 months ago (2016-05-10 04:42:12 UTC) #125
Yang
https://codereview.chromium.org/1812673005/diff/1140001/src/flag-definitions.h File src/flag-definitions.h (right): https://codereview.chromium.org/1812673005/diff/1140001/src/flag-definitions.h#newcode184 src/flag-definitions.h:184: DEFINE_IMPLICATION(es_staging, icu_case_mapping) Can we instead put this into the ...
4 years, 7 months ago (2016-05-10 10:00:46 UTC) #126
Dan Ehrenberg
https://codereview.chromium.org/1812673005/diff/1160001/src/flag-definitions.h File src/flag-definitions.h (right): https://codereview.chromium.org/1812673005/diff/1160001/src/flag-definitions.h#newcode205 src/flag-definitions.h:205: #else Could you define this flag unconditionally, and ignore ...
4 years, 7 months ago (2016-05-10 19:29:37 UTC) #127
jungshik at Google
Thank you, Yang, for taking a look. The latest CL addresses Yang's comments. Besides, Dan ...
4 years, 7 months ago (2016-05-10 20:15:18 UTC) #128
Yang
https://codereview.chromium.org/1812673005/diff/1160001/test/intl/general/case-mapping.js File test/intl/general/case-mapping.js (right): https://codereview.chromium.org/1812673005/diff/1160001/test/intl/general/case-mapping.js#newcode115 test/intl/general/case-mapping.js:115: var uppered = s.toLocaleUpperCase("el"); unfortunately this is not the ...
4 years, 7 months ago (2016-05-10 20:37:37 UTC) #129
jungshik at Google
https://codereview.chromium.org/1812673005/diff/1160001/src/flag-definitions.h File src/flag-definitions.h (right): https://codereview.chromium.org/1812673005/diff/1160001/src/flag-definitions.h#newcode205 src/flag-definitions.h:205: #else On 2016/05/10 19:29:37, Dan Ehrenberg wrote: > Could ...
4 years, 7 months ago (2016-05-10 23:22:33 UTC) #130
jungshik at Google
Can you take another look? Thanks ! https://codereview.chromium.org/1812673005/diff/1160001/test/intl/general/case-mapping.js File test/intl/general/case-mapping.js (right): https://codereview.chromium.org/1812673005/diff/1160001/test/intl/general/case-mapping.js#newcode115 test/intl/general/case-mapping.js:115: var uppered ...
4 years, 7 months ago (2016-05-10 23:33:24 UTC) #131
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1812673005/1200001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1812673005/1200001
4 years, 7 months ago (2016-05-10 23:34:53 UTC) #133
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux64_asan_rel_ng on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux64_asan_rel_ng/builds/1439) v8_linux64_rel_ng on ...
4 years, 7 months ago (2016-05-10 23:37:24 UTC) #135
Yang
LGTM https://codereview.chromium.org/1812673005/diff/1200001/src/runtime/runtime-i18n.cc File src/runtime/runtime-i18n.cc (right): https://codereview.chromium.org/1812673005/diff/1200001/src/runtime/runtime-i18n.cc#newcode807 src/runtime/runtime-i18n.cc:807: ConvertCaseWithTransliterator(&converted, "el-Upper"); So... if ConvertCaseWithTransliterator does not change ...
4 years, 7 months ago (2016-05-11 08:42:30 UTC) #137
jungshik at Google
Thank you, Yang ! Your comment was addressed. I'm adding the CL to CQ. https://codereview.chromium.org/1812673005/diff/1200001/src/runtime/runtime-i18n.cc ...
4 years, 7 months ago (2016-05-11 18:10:08 UTC) #138
Dan Ehrenberg
lgtm
4 years, 7 months ago (2016-05-11 18:13:28 UTC) #139
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1812673005/1240001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1812673005/1240001
4 years, 7 months ago (2016-05-11 18:28:06 UTC) #143
commit-bot: I haz the power
Committed patchset #63 (id:1240001)
4 years, 7 months ago (2016-05-11 19:01:54 UTC) #145
commit-bot: I haz the power
Patchset 63 (id:??) landed as https://crrev.com/b348d47bb94399045394bf4743c0c8c35328923b Cr-Commit-Position: refs/heads/master@{#36187}
4 years, 7 months ago (2016-05-11 19:03:18 UTC) #147
srl295
4 years, 4 months ago (2016-07-27 18:53:39 UTC) #149
Message was sent while issue was closed.
Not sure if i'm late or early to the party.

https://codereview.chromium.org/1812673005/diff/1240001/src/js/i18n.js
File src/js/i18n.js (right):

https://codereview.chromium.org/1812673005/diff/1240001/src/js/i18n.js#newcod...
src/js/i18n.js:2003: // toLocale{U,L}Case() and about 40% of
toLocale{U,L}Case("<locale>").
if it's slow, please file a bug in ICU to address. Filed:
http://bugs.icu-project.org/trac/ticket/12647

https://codereview.chromium.org/1812673005/diff/1240001/src/js/i18n.js#newcod...
src/js/i18n.js:2019: var CUSTOM_CASE_LANGUAGES = ['az', 'el', 'lt', 'tr'];
Why are these hard coded? This decision should be made in ICU. Fragile.

https://codereview.chromium.org/1812673005/diff/1240001/src/js/i18n.js#newcod...
src/js/i18n.js:2019: var CUSTOM_CASE_LANGUAGES = ['az', 'el', 'lt', 'tr'];
Filed : http://bugs.icu-project.org/trac/ticket/12647

https://codereview.chromium.org/1812673005/diff/1240001/src/runtime/runtime-i...
File src/runtime/runtime-i18n.cc (right):

https://codereview.chromium.org/1812673005/diff/1240001/src/runtime/runtime-i...
src/runtime/runtime-i18n.cc:754: 
filed ICU bug http://bugs.icu-project.org/trac/ticket/12647 to pull this
fastpath into ICU.

Powered by Google App Engine
This is Rietveld 408576698