1. 20 Oct, 2017 22 commits
  2. 19 Oct, 2017 18 commits
    • 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
    • Daniel Cheng's avatar
      Add a name for the regyp hook · 3e4a720b
      Daniel Cheng authored
      Change-Id: Ia403b1fc379688de5cd7e68fa99c364c1df36c00
      Reviewed-on: https://chromium-review.googlesource.com/728955Reviewed-by: 's avatarBen Smith <binji@chromium.org>
      Commit-Queue: Daniel Cheng <dcheng@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48764}
      3e4a720b
    • Jaroslav Sevcik's avatar
      Revert "[turbofan] Load elimination prunes control flow based on instance type." · 8f09a751
      Jaroslav Sevcik authored
      This reverts commit 71bcc1d9.
      
      Reason for revert: Regresses Octane/Box2D, among other things.
      
      Original change's description:
      > [turbofan] Load elimination prunes control flow based on instance type.
      > 
      > Changes:
      > - introduce the notion of unreachable abstract states.
      > 
      > - reconnect unreachables states to runtime abort in effect phis (so that
      >   the merged states are not polluted by unreachable branches while
      >   preserving SSA).
      > 
      > - mark states with failed map checks, unreachable map guars as unreachable.
      > 
      > - add instance type to AbstractMaps, only invalidate instance type on
      >   mismatched effect merges.
      > 
      > 
      > This results in 2-3% improvement on ARES/ML steady state.
      > 
      > Bug: v8:6396
      > Change-Id: I35b0d4482fa400ba7ee9a754f8ef1b2663ebc7dc
      > Reviewed-on: https://chromium-review.googlesource.com/727761
      > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
      > Commit-Queue: Jaroslav Sevcik <jarin@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#48742}
      
      TBR=jarin@chromium.org,bmeurer@chromium.org
      
      Change-Id: I6302b37dbf5ea781c64815ef1900681531ad7d71
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:6396
      Reviewed-on: https://chromium-review.googlesource.com/728440Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Commit-Queue: Jaroslav Sevcik <jarin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48763}
      8f09a751
    • Jaroslav Sevcik's avatar
      [turbofan] Check that effect control linearizations have the right value output count. · ff8b937f
      Jaroslav Sevcik authored
      Bug: v8:5267
      Change-Id: Icd56bdf58ed784747a710007ec5b99d9b756cbd7
      Reviewed-on: https://chromium-review.googlesource.com/727887Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Commit-Queue: Jaroslav Sevcik <jarin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48762}
      ff8b937f
    • Alexei Filippov's avatar
      [runtime-call-stats] Temporarily change DCHECK to CHECK in RCS::Enter and LEAVE · d0cf7297
      Alexei Filippov authored
      This is to catch remaining instances or main thread's RCS accessed from other
      threads. It could have a small negative impact on performance with RCS enabled.
      We are going to revert this patch within a week.
      
      BUG=chromium:760649
      
      Change-Id: I437bf7206829c813c0090552c031199840f4baf4
      Reviewed-on: https://chromium-review.googlesource.com/728398Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Commit-Queue: Alexei Filippov <alph@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48761}
      d0cf7297
    • Adithya Srinivasan's avatar
      Add JSSpecialApiObjectType to fast path · f65251be
      Adithya Srinivasan authored
      HTMLCollection and NodeList have InstanceType
      JS_SPECIAL_API_OBJECT_TYPE, and therefore always run the slow case
      of GetAlignedPropertyFromInternalField. This slows down the performance
      of indexedPropertyGetter for both types, which are very commonly used
      in websites.
      
      Bug: 
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: I36bd2cd7d9bbc19149e15174f6868b8a1f1658c8
      Reviewed-on: https://chromium-review.googlesource.com/726529Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Commit-Queue: Adithya Srinivasan <adithyas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48760}
      f65251be
    • Hannes Payer's avatar
      Add a flag to disable all parallel and concurrent GC features. · 789298d8
      Hannes Payer authored
      Bug: 
      Change-Id: If697e92451ce041d0b1cec65277f6501bd770635
      Reviewed-on: https://chromium-review.googlesource.com/727810Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Commit-Queue: Hannes Payer <hpayer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48759}
      789298d8
    • Michael Lippautz's avatar
      [heap] IncrementalMarking: Avoid using atomcis for live byte count · 9b51519e
      Michael Lippautz authored
      The regression sneaked in when unifying the marking visitors in
      4b42656d. The concurrent marker keeps a
      local live byte count per page so it is safe to rely on non-atomic
      writes from the main thread.
      
      CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_linux64_tsan_rel;master.tryserver.v8:v8_linux64_tsan_concurrent_marking_rel_ng;master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
      
      Bug: chromium:775864
      Change-Id: If67d2accd1d7953aa30d815da8bf41b0039ad2dd
      Reviewed-on: https://chromium-review.googlesource.com/728239
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48758}
      9b51519e
    • Ross McIlroy's avatar
      [Cleanup][Interpreter] Move feedback slot allocation to bytecode generator · ed592eb0
      Ross McIlroy authored
      Moves the feedback vector slot allocation out of ast-numbering and into
      bytecode generation directly. This has a couple of benifits, including reduced
      AST size, avoid code duplication and reduced feedback vector sizes in many cases
      due to only allocating slots when needed. Also removes AstProperties since
      this is no longer needed.
      
      AstNumbering is now only used to allocate suspend ids for generators.
      
      BUG=v8:6921
      
      Change-Id: I103e8593c94ef5b2e56c34ef4f77bd6e7d64796f
      Reviewed-on: https://chromium-review.googlesource.com/722959
      Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarMichael Stanton <mvstanton@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48757}
      ed592eb0
    • Clemens Hammacher's avatar
      Reenable readability/check cpplint check · 3d4a9826
      Clemens Hammacher authored
      And fix the last violations which were introduced since the cleanup CLs
      landed.
      
      R=mstarzinger@chromium.org, jgruber@chromium.org
      
      Bug: v8:6837, v8:6921
      Change-Id: I317cce06f1e5c2bcdd57283c9c1b75cbe6415cbb
      Reviewed-on: https://chromium-review.googlesource.com/727885Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48756}
      3d4a9826
    • Daniel Clifford's avatar
      Convert ZoneList to ZoneVector in Module data structures · 26ae9380
      Daniel Clifford authored
      BUG=v8:6333,v8:6921
      R=franzih@chromium.org
      
      Change-Id: I18995282d372069ab576b87cebea4b405aa01c2c
      Reviewed-on: https://chromium-review.googlesource.com/719005
      Commit-Queue: Daniel Clifford <danno@chromium.org>
      Reviewed-by: 's avatarFranziska Hinkelmann <franzih@chromium.org>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48755}
      26ae9380
    • Daniel Clifford's avatar
      Ensure inlined Array.protoype.shift() calls return non-COW arrays · 0454a842
      Daniel Clifford authored
      Also ensure that CSA's CloneFixedArray and ExtractFixedArray correctly
      transition COW to non-COW maps when doing a clone requiring copying.
      
      Bug: chromium:775888
      Change-Id: I31c97072761fdd2360d86f840c9fd6ab2d72973a
      Reviewed-on: https://chromium-review.googlesource.com/727900
      Commit-Queue: Daniel Clifford <danno@chromium.org>
      Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48754}
      0454a842
    • Michael Lippautz's avatar
      Reland "Reland "[heap] ArrayBufferTracker: Only consider committed size"" · da9691de
      Michael Lippautz authored
      Includes the fix for aborted compaction pages that now require processing 
      with all other ArrayBufferTrackers because the considered length (byteLength)
      may be a HeapNumber allocated on a compacted page.
      
      This is a reland of 46f9d5a2
      Original change's description:
      > Reland "[heap] ArrayBufferTracker: Only consider committed size"
      > 
      > This is a reland of 6488c9e5
      > Original change's description:
      > > [heap] ArrayBufferTracker: Only consider committed size
      > > 
      > > - Only consider commited size of ABs.
      > > - Compute freed memory from retained sizes byte length might be a
      > >   HeapNumber and thus prohibited from accessing (as it may be already
      > >   collected).
      > > 
      > > CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_linux64_tsan_rel;master.tryserver.v8:v8_linux64_tsan_concurrent_marking_rel_ng;master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
      > > 
      > > Bug: chromium:775896
      > > Change-Id: Ia0bed66afac5e4d5ed58194950a55156e19cec72
      > > Reviewed-on: https://chromium-review.googlesource.com/725722
      > > Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#48699}
      > 
      > Bug: chromium:775896
      > Change-Id: Ibbec1ffa8fe90d3668f0fe0c1b8b9997b5fd644e
      > Cq-Include-Trybots: master.tryserver.v8:v8_linux64_tsan_rel;master.tryserver.v8:v8_linux64_tsan_concurrent_marking_rel_ng;master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
      > Reviewed-on: https://chromium-review.googlesource.com/726579
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#48707}
      
      Bug: chromium:775896
      Change-Id: I9b7b2ae865ef6cdb25692abb65108df5c2ecc157
      Cq-Include-Trybots: master.tryserver.v8:v8_linux64_tsan_rel;master.tryserver.v8:v8_linux64_tsan_concurrent_marking_rel_ng;master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
      Reviewed-on: https://chromium-review.googlesource.com/726800Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48753}
      da9691de
    • Clemens Hammacher's avatar
      Reland^2 "[arm] [simulator] Do also execute tests on real hardware" · 39906c5d
      Clemens Hammacher authored
      This is a reland of f77d98f7.
      The issue was already fixed when this got reverted.
      
      Original change's description:
      > Reland "[arm] [simulator] Do also execute tests on real hardware"
      > 
      > This is a reland of 8bacd848.
      > The failing test is disabled if not executing in the simulator.
      > 
      > Original change's description:
      > > [arm] [simulator] Do also execute tests on real hardware
      > > 
      > > In order to avoid writing tests that *only* pass in the simulator, but
      > > not on real hardware, do also execute the simulator tests on real
      > > hardware.
      > > 
      > > R=ahaas@chromium.org, rodolph.perfetta@arm.com
      > > 
      > > Bug: v8:6947
      > > Change-Id: Ibdf1719fff20e17620c0aaa343d7ea28e48f3837
      > > Reviewed-on: https://chromium-review.googlesource.com/722961
      > > Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      > > Reviewed-by: Rodolph Perfetta <rodolph.perfetta@arm.com>
      > > Reviewed-by: Andreas Haas <ahaas@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#48706}
      > 
      > Bug: v8:6947, v8:6963
      > Change-Id: I5733794bc5ca223c8e66afcdeb8414b1b4121314
      > Reviewed-on: https://chromium-review.googlesource.com/727880
      > Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      > Reviewed-by: Andreas Haas <ahaas@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#48734}
      
      Bug: v8:6947, v8:6963
      Change-Id: I6124164ff92a2387d714ce974000b6f615b91983
      Reviewed-on: https://chromium-review.googlesource.com/727207Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48752}
      39906c5d
    • Ulan Degenbaev's avatar
      [runtime] Refactor initialization of in-object property count of a map. · 2a3cab7a
      Ulan Degenbaev authored
      This patch moves initialization of inobject_properties and
      unused_property_fields of a map to the construction time of the map.
      
      Map::AppendDescriptor now properly decrements unused_property_fields
      and thus maintains the invariant for property field counters.
      
      Bug: chromium:774644
      Change-Id: I78e5d5c767e22148cb64e8cabe0564e7a13988f5
      Reviewed-on: https://chromium-review.googlesource.com/725726Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48751}
      2a3cab7a
    • Michael Lippautz's avatar
      [platform] Enforce OWNERS for low-level platform implementations · c1986c80
      Michael Lippautz authored
      Bug: 
      No-try: true
      Change-Id: I5c4f050d338cb75e93e17aa645922673c74f16e7
      Reviewed-on: https://chromium-review.googlesource.com/721664Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Reviewed-by: 's avatarDaniel Clifford <danno@chromium.org>
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48750}
      c1986c80
    • Tobias Tebbi's avatar
      Revert "Reland^4 "[turbofan] eagerly prune None types and deadness from the graph"" · 2bf01995
      Tobias Tebbi authored
      This revert is manual, but almost completely automatic. 
      It was just blocked by a single-line irrelevant refactoring change.
      This reverts commit 1cee0e01.
      
      Reason for revert: chromium:776256
      
      Original change's description:
      > Reland^4 "[turbofan] eagerly prune None types and deadness from the graph"
      >
      > This fixes https://bugs.chromium.org/p/chromium/issues/detail?id=773954.
      > The issue was that in the EffectControlLinearizer, the effect input of an
      > {Unreachable} node was not updated, leaving a {Checkpoint} behind.
      >
      > This is a reland of 4cf47645
      > Original change's description:
      > > Reland^3 "[turbofan] eagerly prune None types and deadness from the graph"
      > >
      > > This fixes the issues
      > > https://bugs.chromium.org/p/chromium/issues/detail?id=772873
      > > and https://bugs.chromium.org/p/chromium/issues/detail?id=772872.
      > >
      > > One problem was that mutating an effect node into Unreachable confused
      > > the LoadElimination sidetables, so I just always create a new node now.
      > >
      > > The other problem was that UpdateBlockControl() was executed after
      > > UpdateEffectPhi() in the lazy case. This reverted the update to the Merge input.
      > > So now I make sure that UpdateEffectPhi() is always executed last.
      > >
      > > This is a reland of 6ddb5e7d
      > > Original change's description:
      > > > Reland^2 "[turbofan] eagerly prune None types and deadness from the graph"
      > > >
      > > > Now, the EffectControlLinearizer connects all occurrences of Unreachable to the
      > > > graph end. This fixes issues with later phases running DeadCodeElimination and
      > > > introducing new DeadValue nodes when processing uses of Unreachable.
      > > >
      > > > This is a reland of 3c4bc27f
      > > > Original change's description:
      > > > > Reland "[turbofan] eagerly prune None types and deadness from the graph"
      > > > >
      > > > > This is a reland of e1cdda25
      > > > > Original change's description:
      > > > > > [turbofan] eagerly prune None types and deadness from the graph
      > > > > >
      > > > > > In addition to using the {Dead} node to prune dead control nodes and nodes that
      > > > > > depend on them, we introduce a {DeadValue} node representing an impossible value
      > > > > > that can occur at any position in the graph. The extended {DeadCodeElimination}
      > > > > > prunes {DeadValue} and its uses, inserting a crashing {Unreachable} node into
      > > > > > the effect chain when possible. The remaining uses of {DeadValue} are handled
      > > > > > in {EffectControlLinearizer}, where we always have access to the effect chain.
      > > > > > In addition to explicitly introduced {DeadValue} nodes, we consider any value use
      > > > > > of a node with type {None} as dead.
      > > > > >
      > > > > > Bug: chromium:741225
      > > > > > Change-Id: Icc4b636d1d018c452ba1a2fa7cd3e00e522f1655
      > > > > > Reviewed-on: https://chromium-review.googlesource.com/641250
      > > > > > Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      > > > > > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
      > > > > > Cr-Commit-Position: refs/heads/master@{#48208}
      > > > >
      > > > > Bug: chromium:741225
      > > > > Change-Id: I21316913dae02864f7a6d7c9269405a79f054138
      > > > > Reviewed-on: https://chromium-review.googlesource.com/692034
      > > > > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
      > > > > Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      > > > > Cr-Commit-Position: refs/heads/master@{#48232}
      > > >
      > > > Bug: chromium:741225
      > > > Change-Id: I5702ec34856c075717162153adc765774453c45f
      > > > Reviewed-on: https://chromium-review.googlesource.com/702264
      > > > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
      > > > Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      > > > Cr-Commit-Position: refs/heads/master@{#48366}
      > >
      > > Bug: chromium:741225
      > > Change-Id: I4054a694d2521c2e1f0c4a3ad0f3cf100b5c536f
      > > Reviewed-on: https://chromium-review.googlesource.com/709214
      > > Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      > > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#48469}
      >
      > Bug: chromium:741225
      > Change-Id: Id9d4f3a3ae36cb3e38f80edcdba88efa7922ca24
      > Reviewed-on: https://chromium-review.googlesource.com/715716
      > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
      > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
      > Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#48660}
      
      TBR=jarin@chromium.org,tebbi@chromium.org,bmeurer@chromium.org
      
      
      Bug: chromium:741225 chromium:776256
      Change-Id: Iaf2af3cb6dea5fdece43297cb9d987e7decc726d
      Reviewed-on: https://chromium-review.googlesource.com/727804
      Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48749}
      2bf01995
    • peterwmwong's avatar
      [builtins] Port String.raw to CPP · 84c9f05d
      peterwmwong authored
      - Add StringRaw CPP Builtin
      - Remove string.js
      
      Bug: v8:5049
      Change-Id: I0d067c5b5aa9231383c2f9f2a9cf80f478fbbaa8
      Reviewed-on: https://chromium-review.googlesource.com/727723Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48748}
      84c9f05d