1. 25 Apr, 2018 1 commit
  2. 09 Apr, 2018 1 commit
  3. 06 Apr, 2018 2 commits
    • Michael Achenbach's avatar
      Revert "[cleanup] Refactor the Factory" · 503e07c3
      Michael Achenbach authored
      This reverts commit f9a2e24b.
      
      Reason for revert: gc stress failures not all fixed by follow up.
      
      Original change's description:
      > [cleanup] Refactor the Factory
      > 
      > There is no good reason to have the meat of most objects' initialization
      > logic in heap.cc, all wrapped by the CALL_HEAP_FUNCTION macro. Instead,
      > this CL changes the protocol between Heap and Factory to be AllocateRaw,
      > and all object initialization work after (possibly retried) successful
      > raw allocation happens in the Factory.
      > 
      > This saves about 20KB of binary size on x64.
      > 
      > Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      > Change-Id: Icbfdc4266d7be8b48d2fe085f03411743dc6a0ca
      > Reviewed-on: https://chromium-review.googlesource.com/959533
      > Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      > Reviewed-by: Hannes Payer <hpayer@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#52416}
      
      TBR=jkummerow@chromium.org,yangguo@chromium.org,mstarzinger@chromium.org,hpayer@chromium.org
      
      Change-Id: Idbbc53478742f3e9525eee83342afc6aedae122f
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/999414Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52420}
      503e07c3
    • Jakob Kummerow's avatar
      [cleanup] Refactor the Factory · f9a2e24b
      Jakob Kummerow authored
      There is no good reason to have the meat of most objects' initialization
      logic in heap.cc, all wrapped by the CALL_HEAP_FUNCTION macro. Instead,
      this CL changes the protocol between Heap and Factory to be AllocateRaw,
      and all object initialization work after (possibly retried) successful
      raw allocation happens in the Factory.
      
      This saves about 20KB of binary size on x64.
      
      Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      Change-Id: Icbfdc4266d7be8b48d2fe085f03411743dc6a0ca
      Reviewed-on: https://chromium-review.googlesource.com/959533
      Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52416}
      f9a2e24b
  4. 31 Mar, 2018 1 commit
  5. 12 Mar, 2018 1 commit
    • Andreas Haas's avatar
      [intl] Store the collator as a Managed · 825d0175
      Andreas Haas authored
      The lifetime of the collator is handled by the JavaScript heap. At the
      moment this is implemented with a weak GlobalHandle. With this CL I
      change the implementation to use a Managed object instead. In addition I
      did some code cleanup.
      
      The main reason for using a Managed is an lsan problem. The final GC in
      d8 is triggered before all pending WebAssembly compilations get
      canceled. Via the native context, WebAssembly compilation can keep the
      Collator wrapper alive, and therefore the collator is never deallocated.
      Managed, however, get processed at isolate teardown, independent of the
      reachability of the Managed.
      
      TEST=mjsunit/regress/regress-813440
      
      Bug: chromium:813440
      Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      Change-Id: Ie727eb1aff2144586eb36426cc44a32357c0f822
      Reviewed-on: https://chromium-review.googlesource.com/956069
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51886}
      825d0175
  6. 23 Feb, 2018 1 commit
  7. 13 Nov, 2017 1 commit
  8. 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
  9. 18 Oct, 2017 1 commit
  10. 16 Oct, 2017 1 commit
  11. 13 Oct, 2017 1 commit
  12. 12 Oct, 2017 1 commit
  13. 28 Aug, 2017 1 commit
  14. 21 Aug, 2017 1 commit
  15. 18 Jul, 2017 1 commit
    • Ben Noordhuis's avatar
      [intl] translate locale en_US_POSIX to en-US · 2b5a36d5
      Ben Noordhuis authored
      en_US_POSIX is ICU's fallback locale on POSIX platforms for when it
      cannot detect a default locale.  Consider it equivalent to en-US.
      
      I won't claim this is the best possible fix but it makes the following
      tests pass again for me locally:
      
          intl/break-iterator/default-locale
          intl/break-iterator/wellformed-unsupported-locale
          intl/collator/default-locale
          intl/collator/wellformed-unsupported-locale
          intl/date-format/default-locale
          intl/date-format/wellformed-unsupported-locale
          intl/number-format/default-locale
          intl/number-format/wellformed-unsupported-locale
      
      R=jgruber@chromium.org
      
      Cq-Include-Trybots: master.tryserver.v8:v8_linux_noi18n_rel_ng
      Change-Id: I0e8029f4ffaf5fd3ca72a1cc5db2878891744864
      Reviewed-on: https://chromium-review.googlesource.com/567981
      Commit-Queue: Ben Noordhuis <info@bnoordhuis.nl>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46730}
      2b5a36d5
  16. 06 Jul, 2017 1 commit
  17. 10 May, 2017 1 commit
  18. 04 May, 2017 1 commit
  19. 29 Apr, 2017 1 commit
    • Daniel Ehrenberg's avatar
      Revert "[intl] Switch to using declared accessors" · 0ca84d06
      Daniel Ehrenberg authored
      This reverts commit 4968b2c4.
      
      Reason for revert: Speculative revert for severe perf regression
      https://bugs.chromium.org/p/chromium/issues/detail?id=716468#c3
      
      Original change's description:
      > [intl] Switch to using declared accessors
      > 
      > This patch cleans up the Intl code by switching to using declared
      > accessors, rather than embedder fields, for holding references to
      > ICU objects. Additionally:
      > - Rename classes to be more similar to how other classes are named
      > - Make some unreachable paths into check-fails, rather than throwing
      >   JS exceptions
      > - Move some macros from objects-inl.h into object-macros.h, to allow
      >   the implementation here to not touch objects.h
      > - Some setup logic is moved from runtime-i18n.cc to i18n.cc.
      > 
      > This patch leaves type tags as they are; a future patch should move
      > from a special Intl type tagging system to object types as other system
      > objects use. Future patches should also move more logic to i18n.cc
      > 
      > BUG=v8:5402,v8:5751,v8:6057
      > CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_linux_noi18n_rel_ng
      > 
      > Change-Id: Ia9cbb25cf8f52662e3deb15e64179d792c10842c
      > Reviewed-on: https://chromium-review.googlesource.com/479651
      > Commit-Queue: Daniel Ehrenberg <littledan@chromium.org>
      > Reviewed-by: Adam Klein <adamk@chromium.org>
      > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#44804}
      
      TBR=adamk@chromium.org,marja@chromium.org,mstarzinger@chromium.org,littledan@chromium.org,jwolfe@igalia.com
      # Not skipping CQ checks because original CL landed > 1 day ago.
      BUG=v8:5402,v8:5751,v8:6057
      CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_linux_noi18n_rel_ng
      
      Change-Id: I7a45d7def1f1de0f21e3efb7de9b31f6bcfea46d
      Reviewed-on: https://chromium-review.googlesource.com/490328Reviewed-by: 's avatarDaniel Ehrenberg <littledan@chromium.org>
      Commit-Queue: Daniel Ehrenberg <littledan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#44992}
      0ca84d06
  20. 24 Apr, 2017 2 commits
  21. 11 Apr, 2017 1 commit
  22. 03 Apr, 2017 1 commit
  23. 22 Mar, 2017 1 commit
  24. 17 Mar, 2017 1 commit
    • titzer's avatar
      [rename] Rename internal field to embedder field. · 72e53936
      titzer authored
      This CL renames all occurrences of "internal field" to "embedder field"
      to prevent confusion. As it turns out, these fields are not internal to
      V8, but are actually embedder provided fields that should not be mucked
      with by the internal implementation of V8.
      
      Note that WASM does use these fields, and it should not.
      
      BUG=v8:6058
      
      Review-Url: https://codereview.chromium.org/2741683004
      Cr-Commit-Position: refs/heads/master@{#43900}
      72e53936
  25. 09 Mar, 2017 1 commit
    • jshin's avatar
      Prepare for ICU's switch to char16_t · fd5b3e75
      jshin authored
      ICU's UChar was uint16_t (non-Win) or wchar_t (Windows). It's switching
      to char16_t in both C/C++ API. It needs some changes. Fortunately,
      v8 needs only a couple of changes because v8 has been using
      reinterpret_cast in many places calling ICU API.
      
      This change was confirmed to work fine with ICU-59-to-be.
      
      BUG=v8:6062
      TEST=trybot
      
      Review-Url: https://codereview.chromium.org/2738503008
      Cr-Commit-Position: refs/heads/master@{#43707}
      fd5b3e75
  26. 19 Jan, 2017 1 commit
  27. 13 Jan, 2017 1 commit
    • jshin's avatar
      Fix two DCHECK failures in ICU case mapping code · ac9e6285
      jshin authored
      1.
      DCHECK in runtime-i18n.cc for case mapping was wrong to
      assume that the longest primary language tag is 3 characters.
      BCP 47 actually allows up to 8 characters.
      
      2. GetFlatContent() was called to a string without flattening it first.
      
      BUG=680314,680464
      TEST=intl/general/case-mapping (see also the bugs)
      
      Review-Url: https://codereview.chromium.org/2629763003
      Cr-Commit-Position: refs/heads/master@{#42343}
      ac9e6285
  28. 12 Jan, 2017 2 commits
  29. 11 Jan, 2017 3 commits
  30. 10 Jan, 2017 3 commits
  31. 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
  32. 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