1. 25 May, 2021 1 commit
  2. 21 May, 2021 1 commit
  3. 20 May, 2021 2 commits
  4. 19 May, 2021 3 commits
  5. 18 May, 2021 1 commit
  6. 17 May, 2021 2 commits
  7. 12 May, 2021 3 commits
    • Benedikt Meurer's avatar
      [inspector] Improve RemoteObject description for Wasm functions. · 32f80efe
      Benedikt Meurer authored
      The WebAssembly specification requires the "name" property of (exported)
      function wrappers to hold the index of the function within the module,
      and the default ToString algorithm for Function instances thus generates
      something along the lines of `function 42() { [native code] }`, which is
      technically correct, but not very useful to developers to diagnose
      (humans don't think of functions in a module in terms of their indices).
      With this CL, we change the description returned for Wasm (exported)
      functions to use the debug name of the Wasm function instead.
      
      Screenshot: https://imgur.com/a/FVPeXDU.png
      Doc: http://bit.ly/devtools-wasm-entities
      Fixed: chromium:1206620
      Bug: chromium:1164241
      Change-Id: I096abc287ea077556c13c71f8d71f64452ab4831
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2891570
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarKim-Anh Tran <kimanh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#74517}
      32f80efe
    • Benedikt Meurer's avatar
      [inspector] Side-effect free FunctionMirror descriptions. · 203f5276
      Benedikt Meurer authored
      Drive-by-fix: Remove command line API fn.toString() override, which was
      still in place from the early days when much of the inspector was
      implemented in JavaScript.
      
      Fixed: chromium:1207867
      Bug: chromium:1206620
      Change-Id: I8429f109da5f021f729f184fd824160a24e60897
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2887508
      Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Commit-Queue: Yang Guo <yangguo@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#74516}
      203f5276
    • Maya Lekova's avatar
      Revert "[ic] Fix handling of API properties with side effects" · ba6a1a7c
      Maya Lekova authored
      This reverts commit 0ce36e7d.
      
      Reason for revert: Speculative revert for a Chromium build breakage causing a blocked roll - https://bugs.chromium.org/p/v8/issues/detail?id=11761
      
      Original change's description:
      > [ic] Fix handling of API properties with side effects
      >
      > DebugEvaluate can evaluate expressions in side-effect-free mode, where
      > any operation that would cause observable side effects throws an
      > exception. Currently, when accessors are backed by callbacks, it's
      > possible that ICs call those accessors directly, bypassing the
      > side-effect checks. This CL introduces a bailouts to runtime in those
      > cases.
      >
      > Fixed: chromium:1201781
      > Also-By: ishell@chromium.org, pfaffe@chromium.org
      > Change-Id: Ie53bfb2bff7b3420f2b27091e8df6723382cf53c
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2857634
      > Commit-Queue: Philip Pfaffe <pfaffe@chromium.org>
      > Reviewed-by: Igor Sheludko <ishell@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#74507}
      
      Change-Id: Ifb5c24682af29572591d436ab92b0304058e99af
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2891650
      Auto-Submit: Maya Lekova <mslekova@chromium.org>
      Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Cr-Commit-Position: refs/heads/master@{#74515}
      ba6a1a7c
  8. 11 May, 2021 1 commit
  9. 10 May, 2021 3 commits
  10. 04 May, 2021 1 commit
    • Benedikt Meurer's avatar
      [liveedit] Reduce peak memory usage of text diffing. · 3fa681db
      Benedikt Meurer authored
      The algorithm used to compute the textual differences uses requires
      quadratic space (in the size of the input scripts). Previously the
      implementation was naively allocating a single matrix, which is commonly
      very sparse, since the expectation for LiveEdit is that only a small
      portion of the script is actually altered. So we can use a std::map here
      instead to reduce the cost.
      
      We can also significantly reduce the cost (especially of the stack grow
      due to the recursion) by precomputing the common prefix, and pre-filling
      the table for the common suffix, both of which are also assumed to make
      up for the majority of the script in case of LiveEdit.
      
      This is still only ducktape, but should mitigate the crashes in the wild
      significantly. Ideally we'd eventually replace this with an
      implementation of the Myers algorithm that runs in linear space.
      
      Fixed: chromium:1199807
      Change-Id: Ib5fa0b1aa63c67631f919dc3b6641dfc0b20ae74
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2867470Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#74344}
      3fa681db
  11. 30 Apr, 2021 1 commit
  12. 29 Apr, 2021 2 commits
    • Benedikt Meurer's avatar
      [debugger] Remove "Restart frame" feature. · 93f85699
      Benedikt Meurer authored
      The "Restart frame" feature was implemented as part of LiveEdit and
      primarily used to support LiveEdit of active functions, but that was
      previously disabled as part of https://crrev.com/c/2846892 because it's
      too brittle and causes crashes when using seemingly unrelated features.
      The "Restart frame" feature was also available as a context menu item
      separately in the DevTools front-end, but that was also already removed
      as part of https://crrev.com/c/2854681 earlier. So all uses are gone
      now.
      
      This change works by marking Debugger.restartFrame as deprecated and
      having it respond with a ServerError all the time. It thus allows us to
      remove a whole bunch of machinery that was essentially just put in
      various places to support the restart_fp_ magic. In particular the
      debugger no longer needs any machine specific builtins now.
      
      Bug: chromium:1195927
      Change-Id: I1153ba6b00e979620af57dd9f58aa1c035ec4484
      Fixed: chromium:1203606
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2854750Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#74276}
      93f85699
    • Toon Verwaest's avatar
      [debug] Include Token::CLASS in class scopes and ContainsPosition · 00845abb
      Toon Verwaest authored
      While evaluating a class literal the containing function points to
      Token::CLASS. It may have pushed a context for that class that uses
      the range of the class scope. So far the class scope had a range that
      started after the class name or class token in case of anonymous
      classes. That means the source position of the function frame doesn't
      point to a position that is included in the active context range. This
      breaks the debugger because it relies on being able to find the
      matching parser scope for the active context by looking at the source
      position.
      
      The fix is two-fold:
      - extend the class scope source range to include Token::CLASS
      - update ScopeChainRetriever::ContainsPosition to include the start
        position of class scopes as a valid source position. We can't always
        include start due to arrow functions that don't have braces.
      
      Bug: chromium:1156498
      Change-Id: I9ec640c6326289dadcb154bb0a329ca6f8188f8b
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2857957Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Auto-Submit: Toon Verwaest <verwaest@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#74268}
      00845abb
  13. 28 Apr, 2021 1 commit
    • Benedikt Meurer's avatar
      [debug] Disallow LiveEdit of active frames. · 53fc4807
      Benedikt Meurer authored
      Previously we'd allow to replace the source of functions that are on the
      current execution stack under certain conditions, but this has resulted
      in an endless stream of bugs due to weird edge cases, and so we're now
      limiting LiveEdit to functions that don't have any activation (including
      not a suspended generator / async function activation).
      
      We might eventually add the ability to LiveEdit functions with
      activations and have them "upgrade upon next invocation", but that
      doesn't seem to be an extremely important use case right now.
      
      Fixed: chromium:1195927
      Change-Id: I87a45ba4d0ddcfbf867bd4e73738d76b2d789e04
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2846892
      Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#74249}
      53fc4807
  14. 23 Apr, 2021 1 commit
  15. 19 Apr, 2021 1 commit
  16. 12 Apr, 2021 4 commits
  17. 09 Apr, 2021 3 commits
  18. 22 Mar, 2021 3 commits
  19. 16 Mar, 2021 1 commit
  20. 15 Mar, 2021 1 commit
    • Kim-Anh Tran's avatar
      [debugger] Consider close-by functions when setting a breakpoint · a7c8a3ea
      Kim-Anh Tran authored
      This changes the behavior of SetBreakpointForScript to find more
      accurate break positions.
      
      Previously, setting a breakpoint would only consider the shared
      function info that contained the requested position for setting a
      breakpoint. More intuitively, a breakpoint should not necessarily
      be set in a function that contains the position, but in the closest
      breakable location that comes after the position we requested.
      
      To achieve this we:
      1. find the shared function info of the inner most function
      that contains the requested_position.
      This function's end position is used to find other shared function
      infos in step 2.
      
      2. search for all shared function infos that intersect with the
      range [requested_position, inner_most_function.break_position[.
      
      3. From the shared function infos extracted in 2, find the one
      that has the closest breakable location to requested_position.
      
      Also-By: bmeurer@chromium.org
      Fixed: chromium:1137141
      Change-Id: I4f4c6c3aac1ebea50cbcad9543b539ab1ded2b05
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2742198
      Commit-Queue: Kim-Anh Tran <kimanh@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73392}
      a7c8a3ea
  21. 11 Mar, 2021 3 commits
    • Clemens Backes's avatar
      Reland "[no-wasm] Exclude src/wasm from compilation" · 3f9ff062
      Clemens Backes authored
      This is a reland of 80f5dfda. A condition
      in pipeline.cc was inverted, which lead to a CSA verifier error.
      
      Original change's description:
      > [no-wasm] Exclude src/wasm from compilation
      >
      > This is the biggest chunk, including
      > - all of src/wasm,
      > - torque file for wasm objects,
      > - torque file for wasm builtins,
      > - wasm builtins,
      > - wasm runtime functions,
      > - int64 lowering,
      > - simd scala lowering,
      > - WasmGraphBuilder (TF graph construction for wasm),
      > - wasm frame types,
      > - wasm interrupts,
      > - the JSWasmCall opcode,
      > - wasm backing store allocation.
      >
      > Those components are all recursively entangled, so I found no way to
      > split this change up further.
      >
      > Some includes that were recursively included by wasm headers needed to
      > be added explicitly now.
      >
      > backing-store-unittest.cc is renamed to wasm-backing-store-unittest.cc
      > because it only tests wasm backing stores. This file is excluded from
      > no-wasm builds then.
      >
      > R=jkummerow@chromium.org, jgruber@chromium.org, mlippautz@chromium.org, petermarshall@chromium.org
      >
      > Bug: v8:11238
      > Change-Id: I7558f2d12d2dd6c65128c4de7b79173668c80b2b
      > Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2742955
      > Commit-Queue: Clemens Backes <clemensb@chromium.org>
      > Reviewed-by: Peter Marshall <petermarshall@chromium.org>
      > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#73344}
      
      TBR=jgruber@chromium.org
      
      Bug: v8:11238
      Change-Id: I20bd2847a59c68738b5a336cd42582b7b1499585
      Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel
      Cq-Include-Trybots: luci.v8.try:v8_linux_verify_csa_rel_ng
      Cq-Include-Trybots: luci.v8.try:v8_linux64_verify_csa_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2752867Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73348}
      3f9ff062
    • Clemens Backes's avatar
      Revert "[no-wasm] Exclude src/wasm from compilation" · 92bc3d38
      Clemens Backes authored
      This reverts commit 80f5dfda.
      
      Reason for revert: Fails CSA verification: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20verify%20csa/21766/overview
      
      Original change's description:
      > [no-wasm] Exclude src/wasm from compilation
      >
      > This is the biggest chunk, including
      > - all of src/wasm,
      > - torque file for wasm objects,
      > - torque file for wasm builtins,
      > - wasm builtins,
      > - wasm runtime functions,
      > - int64 lowering,
      > - simd scala lowering,
      > - WasmGraphBuilder (TF graph construction for wasm),
      > - wasm frame types,
      > - wasm interrupts,
      > - the JSWasmCall opcode,
      > - wasm backing store allocation.
      >
      > Those components are all recursively entangled, so I found no way to
      > split this change up further.
      >
      > Some includes that were recursively included by wasm headers needed to
      > be added explicitly now.
      >
      > backing-store-unittest.cc is renamed to wasm-backing-store-unittest.cc
      > because it only tests wasm backing stores. This file is excluded from
      > no-wasm builds then.
      >
      > R=​jkummerow@chromium.org, jgruber@chromium.org, mlippautz@chromium.org, petermarshall@chromium.org
      >
      > Bug: v8:11238
      > Change-Id: I7558f2d12d2dd6c65128c4de7b79173668c80b2b
      > Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2742955
      > Commit-Queue: Clemens Backes <clemensb@chromium.org>
      > Reviewed-by: Peter Marshall <petermarshall@chromium.org>
      > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#73344}
      
      Bug: v8:11238
      Change-Id: I93672002c1faa36bb0bb5b4a9cc2032ee2ccd814
      Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2752866
      Auto-Submit: Clemens Backes <clemensb@chromium.org>
      Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Cr-Commit-Position: refs/heads/master@{#73346}
      92bc3d38
    • Clemens Backes's avatar
      [no-wasm] Exclude src/wasm from compilation · 80f5dfda
      Clemens Backes authored
      This is the biggest chunk, including
      - all of src/wasm,
      - torque file for wasm objects,
      - torque file for wasm builtins,
      - wasm builtins,
      - wasm runtime functions,
      - int64 lowering,
      - simd scala lowering,
      - WasmGraphBuilder (TF graph construction for wasm),
      - wasm frame types,
      - wasm interrupts,
      - the JSWasmCall opcode,
      - wasm backing store allocation.
      
      Those components are all recursively entangled, so I found no way to
      split this change up further.
      
      Some includes that were recursively included by wasm headers needed to
      be added explicitly now.
      
      backing-store-unittest.cc is renamed to wasm-backing-store-unittest.cc
      because it only tests wasm backing stores. This file is excluded from
      no-wasm builds then.
      
      R=jkummerow@chromium.org, jgruber@chromium.org, mlippautz@chromium.org, petermarshall@chromium.org
      
      Bug: v8:11238
      Change-Id: I7558f2d12d2dd6c65128c4de7b79173668c80b2b
      Cq-Include-Trybots: luci.v8.try:v8_linux64_no_wasm_compile_rel
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2742955
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarPeter Marshall <petermarshall@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73344}
      80f5dfda
  22. 10 Mar, 2021 1 commit