1. 27 May, 2016 1 commit
  2. 18 May, 2016 1 commit
  3. 12 May, 2016 1 commit
  4. 11 May, 2016 1 commit
    • jshin's avatar
      Use ICU case conversion/transliterator for case conversion · b348d47b
      jshin authored
      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*
      
      Review-Url: https://codereview.chromium.org/1812673005
      Cr-Commit-Position: refs/heads/master@{#36187}
      b348d47b
  5. 02 May, 2016 1 commit
  6. 29 Apr, 2016 1 commit
  7. 19 Apr, 2016 1 commit
  8. 07 Apr, 2016 1 commit
  9. 29 Mar, 2016 1 commit
  10. 24 Feb, 2016 1 commit
    • littledan's avatar
      Intl: Use private symbols to memoize bound functions · a59f62fc
      littledan authored
      The Intl object used to keep around functions which are bound to the
      receiver and memoized in the object (as required by the ECMA-402 spec)
      in ordinary properties with names like __boundformat__. This patch
      instead stores those methods in private symbol properties, so they are
      not exposed to users. A search in GitHub didn't find any uses of
      __boundformat__ (whereas the same search found plenty of usages of
      other V8 Intl features), so I think this should be fine in terms of
      web compatibility.
      
      BUG=v8:3785
      R=adamk
      LOG=Y
      
      Review URL: https://codereview.chromium.org/1728823002
      
      Cr-Commit-Position: refs/heads/master@{#34230}
      a59f62fc
  11. 12 Dec, 2015 1 commit
  12. 08 Dec, 2015 1 commit
  13. 22 Oct, 2015 1 commit
  14. 14 Oct, 2015 1 commit
  15. 07 Oct, 2015 1 commit
  16. 05 Oct, 2015 1 commit
  17. 02 Oct, 2015 4 commits
  18. 28 Sep, 2015 1 commit
  19. 17 Sep, 2015 3 commits
  20. 05 Aug, 2015 1 commit
  21. 20 Jul, 2015 1 commit
  22. 17 Jul, 2015 1 commit
    • hichris123's avatar
      Make NumberFormat use the ICU currency data, fix bug in NumberFormat · ddb5c2d9
      hichris123 authored
      NumberFormat previously just used a min of 0 digits after the decimal and a max of 3. This CL changes it so that we use the ICU currency data, and set the min and max to the number of numbers after the decimal point for each currency.
      
      This CL also fixes a small bug where if the minimum fraction digits is above 3 but the maximum fraction digits isn't set, then it returns with only three numbers after the decimal point.
      
      BUG=435465,473104,304722
      LOG=Y
      
      Review URL: https://codereview.chromium.org/1231613006
      
      Cr-Commit-Position: refs/heads/master@{#29734}
      ddb5c2d9
  23. 10 Oct, 2014 1 commit
    • yangguo@chromium.org's avatar
      Allow identifier code points from supplementary multilingual planes. · 0dd69ec4
      yangguo@chromium.org authored
      ES5.1 section 6 ("Source Text"):
      "Throughout the rest of this document, the phrase “code unit” and the
      word “character” will be used to refer to a 16-bit unsigned value
      used to represent a single 16-bit unit of text."
      
      This changed in ES6 draft section 10.1 ("Source Text"):
      "The ECMAScript code is expressed using Unicode, version 5.1 or later.
      ECMAScript source text is a sequence of code points. All Unicode code
      point values from U+0000 to U+10FFFF, including surrogate code points,
      may occur in source text where permitted by the ECMAScript grammars."
      
      This patch is to reflect this spec change.
      
      BUG=v8:3617
      LOG=Y
      R=jochen@chromium.org
      
      Review URL: https://codereview.chromium.org/640193002
      
      git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24510 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      0dd69ec4
  24. 26 Aug, 2014 1 commit
  25. 22 Aug, 2014 1 commit
  26. 14 Aug, 2014 1 commit
  27. 23 Jul, 2014 2 commits
  28. 22 Jul, 2014 1 commit
  29. 01 Apr, 2014 3 commits
  30. 12 Feb, 2014 1 commit
  31. 31 Jan, 2014 1 commit
  32. 22 Nov, 2013 1 commit