1. 20 Oct, 2017 1 commit
  2. 19 Oct, 2017 1 commit
    • Jungshik Shin's avatar
      Intl.DateTimeFormat: throw RangeError for non-finite input · 831bc233
      Jungshik Shin authored
      intl.js throws an exception when datetime-value to format is
      Infinity or NaN, but there was a way to thwart the check.
      
      Moreover, intl.js and runtime-intl.cc have unnecessary conversions
      of 'Number->Date->Number'. I removed the unnecessary conversion
      and made 'Number' be passed to %InternalDateFormat.  With this
      streamlining, the work-around mentioned above does not work
      anymore.
      
      Add a check in runtime_intl.cc for Infinity/NaN and throw a
      RangeError.
      
      Add invalid-time test for invalid datetime-values passed to
      Intl.DateTimeFormat.format().
      
      Bug: chromium:774833
      Test: intl/date-format/invalid-time.js
      Cq-Include-Trybots: master.tryserver.v8:v8_linux_noi18n_rel_ng
      Change-Id: Idc575e532a86ee110dc4bb945ae023d6516650ee
      Reviewed-on: https://chromium-review.googlesource.com/724860
      Commit-Queue: Jungshik Shin <jshin@chromium.org>
      Reviewed-by: 's avatarAdam Klein <adamk@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48765}
      831bc233
  3. 17 Oct, 2017 1 commit
  4. 12 Oct, 2017 1 commit
  5. 13 Sep, 2017 1 commit
  6. 06 Sep, 2017 1 commit
  7. 21 Aug, 2017 1 commit
  8. 02 Aug, 2017 1 commit
  9. 29 Jun, 2017 1 commit
  10. 28 Jun, 2017 1 commit
    • Igor Sheludko's avatar
      [runtime] Cleanup native methods creation in js/intl.js. · e7bd43c3
      Igor Sheludko authored
      This CL replaces usages of utils.InstallFunctions and utils.InstallGetter()
      with the DEFINE_METHOD* macros that ensure that the native function is
      created in proper form from the beginning. Thus the function will not
      require further reconfiguring like adding a computed name or removing of
      'prototype' property.
      
      This CL is one of a series of cleanup CL which are the preliminary steps for
      improving function closures creation.
      
      Bug: v8:6459
      Cq-Include-Trybots: master.tryserver.v8:v8_linux_noi18n_rel_ng
      Change-Id: I667d70fae12a2f50d0fe18d958b6520110b4b573
      Reviewed-on: https://chromium-review.googlesource.com/548075
      Commit-Queue: Igor Sheludko <ishell@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46278}
      e7bd43c3
  11. 04 May, 2017 2 commits
    • Daniel Ehrenberg's avatar
      [intl] Use a service-dependent default locale · 5228af67
      Daniel Ehrenberg authored
      Different Intl features (DateTimeFormat, NumberFormat, etc) have
      different lists of locales supported. Previously, the default locale
      was set to "und", as opposed to what was detected from the surrounding
      system, if any of these features was missing data. With this patch,
      only that feature is set to "und". In this way, the data quality should
      be just as good as if there were no fallback logic, but at the same time,
      resolvedOptions().locale should show the locale actually in effect.
      
      R=adamk,jshin
      BUG=v8:6288
      
      Change-Id: I62b083a1dde2465cb1541cb18ecc7e59f9097bc0
      Reviewed-on: https://chromium-review.googlesource.com/492886
      Commit-Queue: Daniel Ehrenberg <littledan@chromium.org>
      Reviewed-by: 's avatarAdam Klein <adamk@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#45109}
      5228af67
    • Daniel Ehrenberg's avatar
      [intl] Remove getOptimalLanguageTag logic · c3844487
      Daniel Ehrenberg authored
      It's not clear what this logic is there for; ICU seems to already
      preserve the locale in the way that the comment mentions. There
      appear to be tests in test/intl/general/mapped-locale.js which
      remain passing.
      
      Bug: v8:5751
      Change-Id: Ib9c64f00b982711ae0eab078252a88f44b81b894
      Reviewed-on: https://chromium-review.googlesource.com/485780
      Commit-Queue: Daniel Ehrenberg <littledan@chromium.org>
      Reviewed-by: 's avatarAdam Klein <adamk@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#45080}
      c3844487
  12. 24 Apr, 2017 1 commit
  13. 17 Apr, 2017 1 commit
  14. 14 Apr, 2017 1 commit
  15. 11 Apr, 2017 1 commit
  16. 07 Apr, 2017 1 commit
    • Daniel Ehrenberg's avatar
      test262 roll · dff88c86
      Daniel Ehrenberg authored
      Includes a drive-by fix to a couple of superficial Intl changes
      
      With this roll, test262 starts to look at test262 feature
      flags to determine which harmony flags to turn on. There's
      still more to do, including adding feature flags to existing
      upstream tests and taking advantage of more flags here.
      
      
      Change-Id: I9cb813e0450be9dc7769ac9c601092bd3572556f
      Reviewed-on: https://chromium-review.googlesource.com/471546Reviewed-by: 's avatarAdam Klein <adamk@chromium.org>
      Commit-Queue: Daniel Ehrenberg <littledan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#44495}
      dff88c86
  17. 03 Apr, 2017 1 commit
  18. 13 Mar, 2017 1 commit
    • littledan's avatar
      test262 roll · 01cc4f9f
      littledan authored
      A couple infrastructure changes went into this patch:
      - test262 changed from expecting $ to $262
      - upstream-local-tests.sh gets a command-line parameter for ease of use
      - Fixed up the FAIL_SLOPPY infrastructure, which seems to have bit-rotted
      - Inserted a terrible hack to get around test262 tests with a $ in the name
      
      Drive-by fix for the length of Intl.DateTimeFormat.prototype.format
      
      R=adamk
      
      Review-Url: https://codereview.chromium.org/2733843002
      Cr-Commit-Position: refs/heads/master@{#43749}
      01cc4f9f
  19. 27 Feb, 2017 1 commit
  20. 16 Feb, 2017 2 commits
    • littledan's avatar
      [intl] Fall back on an invalid default locale to "und" · 3059138b
      littledan authored
      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}
      3059138b
    • littledan's avatar
      [builtins] Move non-i18n String case conversion functions to C++ · aeeacdda
      littledan authored
      BUG=v8:5880
      CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_linux_noi18n_rel_ng
      
      Review-Url: https://codereview.chromium.org/2689283008
      Cr-Commit-Position: refs/heads/master@{#43246}
      aeeacdda
  21. 15 Feb, 2017 1 commit
    • littledan's avatar
      [bootstrapper] Remove Intl experimental natives files · 407d6bf1
      littledan authored
      These experimental natives previously only installed functions to the
      appropriate parent. In this patch, the exports container is retained
      so that the bootstrapper may install the functions instead. This
      change is intended to reduce startup time. SharedArrayBuffer retains
      some experimental natives exported from JS; this may be addressed
      in a follow-on patch. The patch includes some minor cleanup of the
      bootstrap process by removing "experimental exports", which was unused.
      
      R=yangguo@chromium.org
      BUG=v8:5880
      CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_linux_noi18n_rel_ng
      
      Review-Url: https://codereview.chromium.org/2683083003
      Cr-Commit-Position: refs/heads/master@{#43221}
      407d6bf1
  22. 14 Feb, 2017 1 commit
  23. 19 Jan, 2017 1 commit
    • littledan's avatar
      [intl] Check for duplicate BCP 47 tags in a case-insensitive way · 5e60bfb2
      littledan authored
      Intl constructors are specified to prohibit structurally invalid
      subtags. BCP 47 defines itself to be case-insensitive. Firefox does
      throw on case-insensitive duplicates, following the specifications.
      This patch makes V8 do the same. There is some small compatibility
      risk, but the case is fairly niche, so I hope it does not cause
      much breakage.
      
      BUG=v8:4215
      
      Review-Url: https://codereview.chromium.org/2639333003
      Cr-Commit-Position: refs/heads/master@{#42487}
      5e60bfb2
  24. 12 Jan, 2017 1 commit
    • littledan's avatar
      [intl] Remove indirection in Intl objects · db13ed1d
      littledan authored
      With the new initialization semantics, the V8 ECMA 402 (Intl)
      implementation does not need to indirect through a symbol to
      get at the underlying object. This patch removes that indirection,
      simplifying the implementation.
      
      R=yangguo@chromium.org
      BUG=v8:5751
      CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_linux_noi18n_rel_ng
      
      Review-Url: https://codereview.chromium.org/2601833002
      Cr-Commit-Position: refs/heads/master@{#42281}
      db13ed1d
  25. 11 Jan, 2017 1 commit
    • jshin's avatar
      Move lang-code checking for case-mapping to C++ from JS · db883422
      jshin authored
      Move the language code checking for 4 languages requiring
      special case mapping to C++ from JavaScript.
      
      This is a speculative fix for crashes reported from Windows and
      Mac Chrome canary builds when icu-case-mapping is enabled by
      default. (see crbug.com/676643)
      
      In addition, tighten up comparision operators in a couple of
      places in i18n.js (=== and !== instead of == and !=).
      
      BUG=v8:4477, v8:4476, chromium:676643
      TEST=test262/{built-ins,intl402}/Strings/*, webkit/fast/js/*,
           mjsunit/string-case, intl/general/case*
      
      Review-Url: https://codereview.chromium.org/2621393002
      Cr-Commit-Position: refs/heads/master@{#42246}
      db883422
  26. 09 Jan, 2017 1 commit
    • littledan's avatar
      [intl] Remove redundant type checking system · 788c96a9
      littledan authored
      Previously, the Intl implementation tracked types two ways:
       - In the intl_initialized_marker_symbol
       - In various named properties of the intl_impl_object_symbol value
      
      As far as I can tell, these will never disagree with each other,
      modulo bugs in Intl itself. This patch removes the second type
      checking system.
      
      This reland includes a fixed type check for
      Intl.DateTimeFormat.prototype.formatToParts , which is the only Intl
      method which is not bound. All future methods will follow this
      pattern.
      
      The second reland ensures that a newly inserted test is only run
      if Intl is present.
      
      BUG=v8:5751,chromium:677055, v8:4962
      CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_linux_noi18n_rel_ng
      
      TBR=yangguo@chromium.org
      
      Review-Url: https://codereview.chromium.org/2623683002
      Cr-Commit-Position: refs/heads/master@{#42152}
      788c96a9
  27. 07 Jan, 2017 2 commits
    • machenbach's avatar
      Revert of [intl] Remove redundant type checking system (patchset #4 id:60001... · b1e4f79e
      machenbach authored
      Revert of [intl] Remove redundant type checking system (patchset #4 id:60001 of https://codereview.chromium.org/2600913002/ )
      
      Reason for revert:
      Breaks noi18n.
      
      Original issue's description:
      > [intl] Remove redundant type checking system
      >
      > Previously, the Intl implementation tracked types two ways:
      >  - In the intl_initialized_marker_symbol
      >  - In various named properties of the intl_impl_object_symbol value
      >
      > As far as I can tell, these will never disagree with each other,
      > modulo bugs in Intl itself. This patch removes the second type
      > checking system.
      >
      > This reland includes a fixed type check for
      > Intl.DateTimeFormat.prototype.formatToParts , which is the only Intl
      > method which is not bound. All future methods will follow this
      > pattern.
      >
      > BUG=v8:5751,chromium:677055, v8:4962
      > CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_linux_noi18n_rel_ng
      >
      > Review-Url: https://codereview.chromium.org/2600913002
      > Cr-Commit-Position: refs/heads/master@{#42118}
      > Committed: https://chromium.googlesource.com/v8/v8/+/aa8a2d2789f79c2c367db406e453b9044e594e25
      
      TBR=yangguo@chromium.org,adamk@chromium.org,littledan@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=v8:5751,chromium:677055, v8:4962
      
      Review-Url: https://codereview.chromium.org/2617323002
      Cr-Commit-Position: refs/heads/master@{#42119}
      b1e4f79e
    • littledan's avatar
      [intl] Remove redundant type checking system · aa8a2d27
      littledan authored
      Previously, the Intl implementation tracked types two ways:
       - In the intl_initialized_marker_symbol
       - In various named properties of the intl_impl_object_symbol value
      
      As far as I can tell, these will never disagree with each other,
      modulo bugs in Intl itself. This patch removes the second type
      checking system.
      
      This reland includes a fixed type check for
      Intl.DateTimeFormat.prototype.formatToParts , which is the only Intl
      method which is not bound. All future methods will follow this
      pattern.
      
      BUG=v8:5751,chromium:677055, v8:4962
      CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_linux_noi18n_rel_ng
      
      Review-Url: https://codereview.chromium.org/2600913002
      Cr-Commit-Position: refs/heads/master@{#42118}
      aa8a2d27
  28. 27 Dec, 2016 1 commit
  29. 23 Dec, 2016 1 commit
    • littledan's avatar
      [intl] Add new semantics + compat fallback to Intl constructor · b0a09d78
      littledan authored
      ECMA 402 v2 made Intl constructors more strict in terms of how they would
      initialize objects, refusing to initialize objects which have already
      been constructed. However, when Chrome tried to ship these semantics,
      we ran into web compatibility issues.
      
      This patch tries to square the circle and implement the simpler v2 object
      semantics while including a compatibility workaround to allow objects to
      sort of be initialized later, storing the real underlying Intl object
      in a symbol-named property.
      
      The new semantics are described in this PR against the ECMA 402 spec:
      https://github.com/tc39/ecma402/pull/84
      
      BUG=v8:4360, v8:4870
      LOG=Y
      
      Review-Url: https://codereview.chromium.org/2582993002
      Cr-Commit-Position: refs/heads/master@{#41943}
      b0a09d78
  30. 20 Dec, 2016 1 commit
  31. 19 Dec, 2016 2 commits
  32. 13 Oct, 2016 1 commit
    • jgruber's avatar
      [regexp] Port remaining JS functions in regexp.js · a10b4712
      jgruber authored
      This ports RegExpInitialize, IsRegExp, InternalMatch and InternalReplace to C++
      / TurboFan. InternalMatch is in TurboFan because it calls RegExpExecStub and
      needs to construct a RegExpResult (which are, respectively, a PlatformStub and
      a CodeStubAssembler function).
      
      Except for LastMatchInfo (and GetSubstitution, which could be moved to string.js
      anytime), regexp.js is now completely empty.
      
      BUG=v8:5339
      
      Review-Url: https://codereview.chromium.org/2409513003
      Cr-Commit-Position: refs/heads/master@{#40277}
      a10b4712
  33. 12 Oct, 2016 1 commit
    • jgruber's avatar
      [i18n] Avoid name conflicts caused by minifier · 32b2d7c8
      jgruber authored
      Our minifier (tools/jsmin.py) shortens variable names it comes across.
      It generally tries to avoid name conflicts caused by renamed variables,
      but cannot handle lambda function syntax.
      
      This is what happens here. Both lambda function parameters 'x' and 'y'
      are not recognized as identifiers by the minifier and it thus potentially
      causes naming conflicts.
      
      BUG=v8:5505
      
      Review-Url: https://codereview.chromium.org/2412533002
      Cr-Commit-Position: refs/heads/master@{#40198}
      32b2d7c8
  34. 07 Oct, 2016 1 commit
  35. 04 Oct, 2016 1 commit
  36. 29 Sep, 2016 1 commit