1. 03 Aug, 2017 21 commits
  2. 02 Aug, 2017 19 commits
    • Deepti Gandluri's avatar
      [wasm] Implement atomic add/sub operations. · ac774a36
      Deepti Gandluri authored
       - Decode logic for atomic operations
       - Implementations for I32AtomicAdd, I32AtomicAdd8U, I32AtomicAdd16U,
      I32AtomicSub, I32AtomicSub8U, I32AtomicSub16U
       - cctest value helpers for Uint16/Uint8 types
      
      R=binji@chromium.org, bbudge@chromium.org, bradnelson@chromium.org
      
      BUG=v8:6532
      
      Change-Id: I710ee8ef566c5e33866afdf5b47375c2ea6fdbe6
      Reviewed-on: https://chromium-review.googlesource.com/595241Reviewed-by: 's avatarBill Budge <bbudge@chromium.org>
      Reviewed-by: 's avatarBrad Nelson <bradnelson@chromium.org>
      Reviewed-by: 's avatarBen Smith <binji@chromium.org>
      Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47102}
      ac774a36
    • Ulan Degenbaev's avatar
      Disable mjsunit/wasm/js-api on GC stress bots. · 5a506a9a
      Ulan Degenbaev authored
      Bug: chromium:751825
      No-Tree-Checks: true
      Change-Id: I8e9e5c030dca001a8dc881d8fdeefa5c140f3792
      Reviewed-on: https://chromium-review.googlesource.com/599047Reviewed-by: 's avatarAdam Klein <adamk@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47101}
      5a506a9a
    • Karl Schimpf's avatar
      Reland "Start migration of try/throw/catch to match proposal." · ad49b7b4
      Karl Schimpf authored
      This is a reland of 470a1001
      Original change's description:
      > Start migration of try/throw/catch to match proposal.
      > 
      > This CL does the first baby steps on moving the current (experimental)
      > exception handling to match that of the WebAssembly proposal.
      > 
      > It does the following:
      > 
      > 1) Use exception tags instead of integers.
      > 
      > 2) Only handle empty exception signatures (i.e. no values associated
      >    with the exception tag.
      > 
      > 3) Only handle one catch clause.
      > 
      > 4) Be sure to rethrow the exception if the exception tag does not match.
      > 
      > Note: There are many things that need to be fixed, and are too
      > numerous to list here. However, the code should have TODO's on each
      > missing parts of the implementation.
      > 
      > Also note that the code currently doesn't handle nested catch blocks,
      > nor does it change the throw value being an integer. Rather, the
      > integer value is still being thrown, and currently is the exception
      > tag. Therefore, we don't build an exception object. This is the reason
      > why this CL doesn't handle exceptions that pass values.
      > 
      > Also, the current implementation still can't handle multiple modules
      > because tag resolution (between) modules has not be implemented yet.
      > 
      > Bug: v8:6577
      > Change-Id: Id6d08b641b3c42d1eec7d4db582f2dab35406114
      > Reviewed-on: https://chromium-review.googlesource.com/591910
      > Reviewed-by: Brad Nelson <bradnelson@chromium.org>
      > Commit-Queue: Karl Schimpf <kschimpf@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#47087}
      
      Bug: v8:6577
      Change-Id: I41c3309827c292cb787681a95aaef7cf9b931835
      Reviewed-on: https://chromium-review.googlesource.com/598968Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarBrad Nelson <bradnelson@chromium.org>
      Commit-Queue: Brad Nelson <bradnelson@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47100}
      ad49b7b4
    • Jeremy Roman's avatar
      Expose v8::TypedArray::kMaxLength. · 19fee8b2
      Jeremy Roman authored
      There is an API check failure if values larger than i::Smi::kMaxValue are
      provided, but it is inconvenient for API users to know what this value is
      (and SIZE_MAX and INT_MAX are both incorrect).
      
      This is analogous to v8::String::kMaxLength.
      
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Bug: chromium:750788
      Change-Id: Ic3e0da62aeacfeb996122595232aa0ea8744517e
      Reviewed-on: https://chromium-review.googlesource.com/594677Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Commit-Queue: Jeremy Roman <jbroman@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47099}
      19fee8b2
    • Adam Klein's avatar
      Enable --harmony-strict-legacy-accessor-builtins by default · 74edfccd
      Adam Klein authored
      This behavior has been staged successfully without a bug report, and
      has been shipped in the latest versions of Firefox and Safari.
      
      Bug: v8:5070
      Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
      Change-Id: I084cae2cc303d6a213bd6789297b91656e162d6b
      Reviewed-on: https://chromium-review.googlesource.com/595129Reviewed-by: 's avatarDaniel Ehrenberg <littledan@chromium.org>
      Commit-Queue: Adam Klein <adamk@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47098}
      74edfccd
    • Alexey Kozyatinskiy's avatar
      [inspector] set last evaluation result on Runtime.evaluate with awaitPromise · a7551738
      Alexey Kozyatinskiy authored
      If objectGroup is console we should correctly save last evaluated result to expose for next console call in $_ variable.
      
      R=dgozman@chromium.org
      
      Bug: none
      Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
      Change-Id: Ie0ba2d302606b1c9f096a9a3a107a51a80556c49
      Reviewed-on: https://chromium-review.googlesource.com/598936Reviewed-by: 's avatarDmitry Gozman <dgozman@chromium.org>
      Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47097}
      a7551738
    • Junliang Yan's avatar
      PPC/s390: fix AssembleTailCallGap cctest. · 6aea7374
      Junliang Yan authored
      both arches don't support push anything to stack except registers
      
      R=joransiu@ca.ibm.com, bjaideep@ca.ibm.com
      
      Bug: 
      Change-Id: I5682fc1634bc66c8aa28889abe5b977092b004f6
      Reviewed-on: https://chromium-review.googlesource.com/598644Reviewed-by: 's avatarJaideep Bajwa <bjaideep@ca.ibm.com>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
      Cr-Commit-Position: refs/heads/master@{#47096}
      6aea7374
    • Jaideep Bajwa's avatar
      S390: Support circular references between generated builtins. · fb64e4d6
      Jaideep Bajwa authored
      Port 266be35b
      
          Minor fix to the original CL.
      
      R=yangguo@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      LOG=N
      
      Change-Id: I10a4d64aa010118b669374e604fe8ed0104ec77f
      Reviewed-on: https://chromium-review.googlesource.com/598808Reviewed-by: 's avatarJunliang Yan <jyan@ca.ibm.com>
      Commit-Queue: Jaideep Bajwa <bjaideep@ca.ibm.com>
      Cr-Commit-Position: refs/heads/master@{#47095}
      fb64e4d6
    • Ulan Degenbaev's avatar
      Revert "[heap] Add support for atomic access to page flags." · 74b1cbbd
      Ulan Degenbaev authored
      This reverts commit 35c923cc.
      
      Reason for revert: speculative revert for GC stress failure
      
      Original change's description:
      > [heap] Add support for atomic access to page flags.
      > 
      > This patch renames AsAtomicWord to AsAtomicPointer and
      > adds new AsAtomicWord that works with intptr_t.
      > 
      > Slot recording uses atomic page flag accessors.
      > 
      > BUG=chromium:694255
      > 
      > Change-Id: I1c692813244b41320182e9eea50462d1802fcd98
      > Reviewed-on: https://chromium-review.googlesource.com/597688
      > Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#47086}
      
      TBR=ulan@chromium.org,mlippautz@chromium.org
      
      Change-Id: Id77ce7970c54a55646c072787e88311f6f3e6e91
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: chromium:694255
      Reviewed-on: https://chromium-review.googlesource.com/598967Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47094}
      74b1cbbd
    • Michael Achenbach's avatar
      Revert "Start migration of try/throw/catch to match proposal." · caa513be
      Michael Achenbach authored
      This reverts commit 470a1001.
      
      Reason for revert: Speculative:
      https://build.chromium.org/p/client.v8/builders/V8%20Mac%20GC%20Stress/builds/14520
      Also flaked later:
      https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20gc%20stress/builds/11953
      
      Original change's description:
      > Start migration of try/throw/catch to match proposal.
      > 
      > This CL does the first baby steps on moving the current (experimental)
      > exception handling to match that of the WebAssembly proposal.
      > 
      > It does the following:
      > 
      > 1) Use exception tags instead of integers.
      > 
      > 2) Only handle empty exception signatures (i.e. no values associated
      >    with the exception tag.
      > 
      > 3) Only handle one catch clause.
      > 
      > 4) Be sure to rethrow the exception if the exception tag does not match.
      > 
      > Note: There are many things that need to be fixed, and are too
      > numerous to list here. However, the code should have TODO's on each
      > missing parts of the implementation.
      > 
      > Also note that the code currently doesn't handle nested catch blocks,
      > nor does it change the throw value being an integer. Rather, the
      > integer value is still being thrown, and currently is the exception
      > tag. Therefore, we don't build an exception object. This is the reason
      > why this CL doesn't handle exceptions that pass values.
      > 
      > Also, the current implementation still can't handle multiple modules
      > because tag resolution (between) modules has not be implemented yet.
      > 
      > Bug: v8:6577
      > Change-Id: Id6d08b641b3c42d1eec7d4db582f2dab35406114
      > Reviewed-on: https://chromium-review.googlesource.com/591910
      > Reviewed-by: Brad Nelson <bradnelson@chromium.org>
      > Commit-Queue: Karl Schimpf <kschimpf@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#47087}
      
      TBR=bradnelson@chromium.org,eholk@chromium.org,kschimpf@chromium.org
      
      Change-Id: I91709105fb066c08b43766b0bc76db8a3af5c9d9
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:6577
      Reviewed-on: https://chromium-review.googlesource.com/598947Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47093}
      caa513be
    • Jaideep Bajwa's avatar
      PPC/s390: Replacing pc with trampoline on stack (gc-stress fix) · 57a78181
      Jaideep Bajwa authored
      Port 895c3219
      
      Original Commit Message:
      
          Replacing pc with trampoline on stack
          This CL is the follow up of https://chromium-review.googlesource.com/c/586707/
          which used to crash when running the gc-stress bots.
          It seems to be working now. We now keep the trampoline PC in the Safepoint
          table and use that information to find SafepointEntries.
      
          There's some refactoring that can be done, such as changing the code for
          exceptions in a similar way and removing the trampoline from the
          DeoptimizationInputData. Will take care of this in the next CL.
      
      R=jupvfranco@google.com, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      LOG=N
      
      Change-Id: I9871d110dcf7e390cf5fb2819ae1fa159c58ae84
      Reviewed-on: https://chromium-review.googlesource.com/598768
      Commit-Queue: Jaideep Bajwa <bjaideep@ca.ibm.com>
      Reviewed-by: 's avatarJoran Siu <joransiu@ca.ibm.com>
      Reviewed-by: 's avatarJunliang Yan <jyan@ca.ibm.com>
      Cr-Commit-Position: refs/heads/master@{#47092}
      57a78181
    • Alexey Kozyatinskiy's avatar
      [inspector] move breakpoint management to native · cd9e86a5
      Alexey Kozyatinskiy authored
      My goal was to move breakpoint API to native with minimal changes around, so on inspector side we use v8::debug::BreakpointId instead of String16, on v8::internal::Debug we use i::BreakPoint object instead of break point object created inside of debug.js.
      
      There are a lot of opportunities how we can improve breakpoints (at least we can avoid some of linear lookups to speedup implementation) but I think that as first step we need to remove mirrors/debug.js APIs.
      
      Drive by: debugger-script.js and usage of debugger context in inspector code base.
      
      R=yangguo@chromium.org,jgruber@chromium.org,clemensh@chromium.org
      
      Bug: v8:5510,chromium:652939
      Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: I0b17972c39053dd4989bbe26db2bb0b88ca378f7
      Reviewed-on: https://chromium-review.googlesource.com/593156Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47091}
      cd9e86a5
    • Ulan Degenbaev's avatar
      Revert "Start migration of try/throw/catch to match proposal." · 41daf8a5
      Ulan Degenbaev authored
      This reverts commit 470a1001.
      
      Reason for revert: GC stress bot failures.
      https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/14522
      
      
      Original change's description:
      > Start migration of try/throw/catch to match proposal.
      > 
      > This CL does the first baby steps on moving the current (experimental)
      > exception handling to match that of the WebAssembly proposal.
      > 
      > It does the following:
      > 
      > 1) Use exception tags instead of integers.
      > 
      > 2) Only handle empty exception signatures (i.e. no values associated
      >    with the exception tag.
      > 
      > 3) Only handle one catch clause.
      > 
      > 4) Be sure to rethrow the exception if the exception tag does not match.
      > 
      > Note: There are many things that need to be fixed, and are too
      > numerous to list here. However, the code should have TODO's on each
      > missing parts of the implementation.
      > 
      > Also note that the code currently doesn't handle nested catch blocks,
      > nor does it change the throw value being an integer. Rather, the
      > integer value is still being thrown, and currently is the exception
      > tag. Therefore, we don't build an exception object. This is the reason
      > why this CL doesn't handle exceptions that pass values.
      > 
      > Also, the current implementation still can't handle multiple modules
      > because tag resolution (between) modules has not be implemented yet.
      > 
      > Bug: v8:6577
      > Change-Id: Id6d08b641b3c42d1eec7d4db582f2dab35406114
      > Reviewed-on: https://chromium-review.googlesource.com/591910
      > Reviewed-by: Brad Nelson <bradnelson@chromium.org>
      > Commit-Queue: Karl Schimpf <kschimpf@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#47087}
      
      TBR=bradnelson@chromium.org,eholk@chromium.org,kschimpf@chromium.org
      
      Change-Id: I01dc8c40cc1057333a988c1d275ce5f457b0cb64
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:6577
      Reviewed-on: https://chromium-review.googlesource.com/598847Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47090}
      41daf8a5
    • Michael Lippautz's avatar
      [heap] MC marking: Refactor roots visitation · 65265429
      Michael Lippautz authored
      Use separate visitors for roots visitation:
      - A general RootVisitor for all regular roots
      - An ObjectVisitor that is able to process contents of the string table
        and code hanging of the top optimized frame
      
      Bug: chromium:750084
      Change-Id: I21aaa18760dede8a9419de2890a47c6dcf7efa3b
      Reviewed-on: https://chromium-review.googlesource.com/598239Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47089}
      65265429
    • Deepti Gandluri's avatar
      [wasm] Memory.grow(0) should return a new ArrayBuffer when the buffer is empty · 201bcba2
      Deepti Gandluri authored
      R=ahaas@chromium.org
      
      BUG=v8:6546
      
      Change-Id: I2808b78cd047d875d4530c86cc079488a78e5ea1
      Reviewed-on: https://chromium-review.googlesource.com/557355
      Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47088}
      201bcba2
    • Karl Schimpf's avatar
      Start migration of try/throw/catch to match proposal. · 470a1001
      Karl Schimpf authored
      This CL does the first baby steps on moving the current (experimental)
      exception handling to match that of the WebAssembly proposal.
      
      It does the following:
      
      1) Use exception tags instead of integers.
      
      2) Only handle empty exception signatures (i.e. no values associated
         with the exception tag.
      
      3) Only handle one catch clause.
      
      4) Be sure to rethrow the exception if the exception tag does not match.
      
      Note: There are many things that need to be fixed, and are too
      numerous to list here. However, the code should have TODO's on each
      missing parts of the implementation.
      
      Also note that the code currently doesn't handle nested catch blocks,
      nor does it change the throw value being an integer. Rather, the
      integer value is still being thrown, and currently is the exception
      tag. Therefore, we don't build an exception object. This is the reason
      why this CL doesn't handle exceptions that pass values.
      
      Also, the current implementation still can't handle multiple modules
      because tag resolution (between) modules has not be implemented yet.
      
      Bug: v8:6577
      Change-Id: Id6d08b641b3c42d1eec7d4db582f2dab35406114
      Reviewed-on: https://chromium-review.googlesource.com/591910Reviewed-by: 's avatarBrad Nelson <bradnelson@chromium.org>
      Commit-Queue: Karl Schimpf <kschimpf@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47087}
      470a1001
    • Ulan Degenbaev's avatar
      [heap] Add support for atomic access to page flags. · 35c923cc
      Ulan Degenbaev authored
      This patch renames AsAtomicWord to AsAtomicPointer and
      adds new AsAtomicWord that works with intptr_t.
      
      Slot recording uses atomic page flag accessors.
      
      BUG=chromium:694255
      
      Change-Id: I1c692813244b41320182e9eea50462d1802fcd98
      Reviewed-on: https://chromium-review.googlesource.com/597688
      Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47086}
      35c923cc
    • Michael Lippautz's avatar
      Make CancelableTask ids unique · bca8409a
      Michael Lippautz authored
      They were only limited to 32 bit when using the internal Hashmap. Since
      this has changed alreay some time ago, we can switch to 64 bit ids and
      check that we never overflow.
      
      Bug: 
      Change-Id: Ia6c6d02d6b5e555c6941185a79427dc4aa2a1d62
      Reviewed-on: https://chromium-review.googlesource.com/598229
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47085}
      bca8409a
    • Ulan Degenbaev's avatar
      Revert "Reland^2 "[heap] Add mechanism for tracking invalidated slots per memory chunk."" · b9acf4ed
      Ulan Degenbaev authored
      This reverts commit 0a9d5150.
      
      Reason for revert: another gc-stress failure
      
      Original change's description:
      > Reland^2 "[heap] Add mechanism for tracking invalidated slots per memory chunk."
      > 
      > This reverts commit 6fde541d.
      > 
      > Bug: chromium:694255
      > Change-Id: I4670d0de3d2749afbb3bdb8dc5418822a885330c
      > Reviewed-on: https://chromium-review.googlesource.com/597850
      > Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#47083}
      
      TBR=ulan@chromium.org,mlippautz@chromium.org
      
      Change-Id: Iaabf4586e0297dccb1ab4ef180b6f1eea173273b
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: chromium:694255
      Reviewed-on: https://chromium-review.googlesource.com/598094Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47084}
      b9acf4ed