- 05 Jul, 2021 1 commit
-
-
Benedikt Meurer authored
In order to implement eager (side effect free) evaluation of arbitrary accessor properties correctly, we need the ability to call getters while guaranteeing that we don't trigger side effects. This is accomplished by adding a `throwOnSideEffect` flag to the `Runtime.callFunctionOn` API, similar to what's already available with the `Runtime.evaluate` and the `Debugger.evaluateOnCallFrame` APIs. Bug: chromium:1076820, chromium:1119900, chromium:1222114 Change-Id: If2d6c51376669cbc71a9dd3c79403d24d62aee43 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3001360 Auto-Submit: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#75556}
-
- 17 Jun, 2021 1 commit
-
-
Sigurd Schneider authored
Bug: chromium:1213393, chromium:1218340 Change-Id: Icde33c97d39a3504ca2ab8290ec2f0b0d923060d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2953194 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#75201}
-
- 02 Jun, 2021 1 commit
-
-
Sigurd Schneider authored
This interface allows associating meta information to exceptions. This meta information can be used by debugging tools, like DevTools, to learn about e.g. a network request or a DevTools issue that is associated with the exception. To do so the inspector client (i.e. embedder) has to provide the data. Bug: chromium:1213393 Change-Id: Ia86221f4f04b21024d592bafb2f74886ead8a6a8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2928496 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Philip Pfaffe <pfaffe@chromium.org> Cr-Commit-Position: refs/heads/master@{#74909}
-
- 27 May, 2021 1 commit
-
-
Daniel Abraham authored
Based on an analysis of auto-generated code, based on browser_protocol.pdl and js_protocol.pdl: https://goreportcard.com/report/github.com/daabr/chrome-vision#misspell Bug: chromium:1213460 Change-Id: Ib96b2d2700d0bf1ac90e88accd0bc15eccbb9d7b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2848874Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Kim-Anh Tran <kimanh@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#74810}
-
- 29 Apr, 2021 1 commit
-
-
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:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#74276}
-
- 23 Apr, 2021 1 commit
-
-
Alex Rudenko authored
`exectionContextId` parameter in Runtime.addBinding is not working correctly and does not have a practical use case. Therefore, deprecating it in favour of the `executionContextName` parameter that better serves the purpose of exposing bindings to isolated worlds. We expect most users to be able to migrate to `executionContextName`. Bug: chromium:1169639 Change-Id: Ic37cefa6a62501c7e903923f1f9c0da7e51326c8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2844652Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Alex Rudenko <alexrudenko@chromium.org> Cr-Commit-Position: refs/heads/master@{#74137}
-
- 16 Apr, 2021 1 commit
-
-
Arno Renevier authored
- represent smis as fake heap numbers - numbers nodes (both smi and heap numbers) reference a child node whose name is "value" and whose entry is the string representation of that number That feature is disabled by default, and can be enabled by passing captureNumericValue: true when calling HeapProfiler.takeHeapSnapshot This patch slightly refactors some functions that operate on "essential objects". We now check that the object is essential before trying to create the entry. Otherwise, we would end up with smi objects created, but not referenced anywhere. Design doc: https://docs.google.com/document/d/1Qh1zxyn0SS5wzJzitD6ecBJTdFbQkJogSMwxDRsn44o/edit Change-Id: Ibbe6e79a54c4f9eace72bc0a0ccb622a97698e00 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2806747Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Arnaud Renevier <arenevier@fb.com> Cr-Commit-Position: refs/heads/master@{#73985}
-
- 11 Feb, 2021 1 commit
-
-
Benedikt Meurer authored
The `wasmvalue` was missing from `PropertyPreview` and `ObjectPreview` subtype enums. Bug: chromium:1170282 Change-Id: If4f8aa330d81e603c82a16b19f14d037d556a373 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2689197Reviewed-by:
Philip Pfaffe <pfaffe@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Auto-Submit: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#72669}
-
- 09 Feb, 2021 1 commit
-
-
Benedikt Meurer authored
BREAKING CHANGE: The values of Wasm locals, stack, and globals are now represented as objects instead of holding the (primitive) values directly, and SIMD128 values are no longer represented as Uint8Arrays. The DWARF extension has been prepared for this breaking change. The new `WasmValue` comes with `type` and `value` properties that hold its contents. The motivation here is that this is a more extensible approach. In case of SIMD128, the `value` property holds the canonical string representation, which has the additional advantage that these values can be compared with `===` (and `==`). This partially reverts https://crrev.com/c/2614428, the main difference here being that WasmValue is now a proper JSObject that can be exposed on the DebugEvaluate proxy API. Screenshot: https://imgur.com/rcahNKM.png Bug: chromium:1170282, chromium:1071432, chromium:1159402 Change-Id: Iea304e3680775123c41deb4c3d172ac949da1b98 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2643384Reviewed-by:
Philip Pfaffe <pfaffe@chromium.org> Reviewed-by:
Zhi An Ng <zhin@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#72570}
-
- 08 Jan, 2021 1 commit
-
-
Benedikt Meurer authored
Previously we had introduced a special `v8::internal::WasmValue` type which we used to expose Wasm values to the Scope view in Chromium DevTools. The problem however is that these values cannot be exposed to JavaScript (and in particular not to Debug Evaluate), which means that particularly for v128 and i64 we have inconsistent representations across the various parts of DevTools. This change removes the `wasm` type from the RemoteObject and all the adjacent logic, and paves the way for a uniform representation of Wasm values throughout DevTools. For i64 we will simply use BigInt consistently everywhere, and for i32, f32 and f64 we'll just use Number. For externref we will represent the values as-is directly. For v128 values we currently use a Uint8Array, but will introduce a dedicated WasmSimd128 class in a follow-up CL. Bug: chromium:1071432 Fixed: chromium:1159402 Change-Id: I0671e5736c9c27d7ca376e23ed74f16d36e03c80 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2614428Reviewed-by:
Zhi An Ng <zhin@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Auto-Submit: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#71962}
-
- 07 Jan, 2021 1 commit
-
-
Benedikt Meurer authored
Note that the `wasm` type and it's subtypes will be removed soon, so we don't need to synchronize them. Fixed: chromium:1162930 Change-Id: I8549679cbe53a1e50e98acedf8547dc09c20ad27 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2613036 Auto-Submit: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#71950}
-
- 28 Dec, 2020 1 commit
-
-
Benedikt Meurer authored
With https://crrev.com/c/2087396 we introduced a new CDP method `Debugger.executeWasmEvaluator()`, which we originally intended to use as the foundation for Debug-Evaluate on Wasm frames. However in the process of prototyping we learned that it is too costly and too inefficient to use WebAssembly modules here, and we switched to regular Debug-Evaluate with JavaScript instead (with a special debug proxy exposed that allows JavaScript to peak into the Wasm frame), since JavaScript is better suited for short-lived / short-running snippets and we don't need clang and wasm-ld then to generate these snippets. The JavaScript exposed debug proxy (as described in [1]) not only enables more powerful and flexible Debug-Evaluate for the DWARF C/C++ extension, but also serves as the basis for various aspects of the Basic Wasm Developer Experience. In order to pay down technical debt and to keep the maintenance overhead low, we should remove the initial prototype now, also to ensure that we don't accidentally attract other users of CDP to rely on this unsupported API (despite it being marked as "experimental"). [1]: https://docs.google.com/document/d/1VZOJrU2VsqOZe3IUzbwQWQQSZwgGySsm5119Ust1gUA Fixed: chromium:1162062 Bug: chromium:1020120, chromium:1068571, chromium:1127914 Change-Id: I6dba8c906a8675ce6c29a52e3c32bb6626a27247 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2605186 Auto-Submit: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#71882}
-
- 23 Dec, 2020 1 commit
-
-
Andrey Kosyakov authored
This adds ExecutionContextDescription.uniqueId for a system-unique way to identify an execution context and supports it in Runtime.evaluate. This allows a client to avoid accidentally executing an expression in a context different from that originally intended if a navigation occurs while Runtime.evaluate is in flight. Design doc: https://docs.google.com/document/d/1vGVWvKP9FTTX6kimcUJR_PAfVgDeIzXXITFpl0SyghQ Bug: v8:11268, chromium:1101897 Change-Id: I4c6bec562ffc85312559316f639d641780144039 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2594538 Commit-Queue: Andrey Kosyakov <caseq@chromium.org> Reviewed-by:
Dmitry Gozman <dgozman@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#71869}
-
- 07 Dec, 2020 1 commit
-
-
Benedikt Meurer authored
Previously V8 would wrap the WebAssembly.Memory backing stores into Uint8Arrays and report that as memories, but that's confusing to the developer, since that's not what's really being used. The way that DevTools presents the backing stores of memories, it's still perfectly possible to get hold of an Uint8Array if that's what the developer is looking for. To make it possible to easily identify the WebAssembly.Memory objects in the DevTools front-end (in particular for the memory inspector) we add a 'webassemblymemory' subtype to the Chrome DevTools Protocol. We also improve the description for the memories to include the number of active pages. Fixed: chromium:1155566 Screenshot: https://imgur.com/8enx57u.png Change-Id: I63dbabe0e372e9ad6dcc8e6642cdb743147a620c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2574699Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Auto-Submit: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#71641}
-
- 13 Nov, 2020 1 commit
-
-
Alfonso Castaño authored
This CL adds the CSPViolation pause reason. Such an enum will be used to enable breakpoints on Trusted Type violations. Design doc: https://docs.google.com/document/d/1rlRtq_Ai0leS9sqlRvoOL5RNc1BR6Q1yAVvLLJFasMA/ Frontend CL: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2520827 Follow-up CL: https://chromium-review.googlesource.com/c/chromium/src/+/2517519 Bug: chromium:1142804 Change-Id: Iefdbb52115d0ba1810527773a8a2828e795fe533 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2519513Reviewed-by:
Daniel Vogelheim <vogelheim@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Alfonso Castaño <alcastano@google.com> Cr-Commit-Position: refs/heads/master@{#71172}
-
- 01 Oct, 2020 1 commit
-
-
Andrey Kosyakov authored
This adds support for injecting binding into contexts other than main based on the context name (AKA isolated world name in Blink terms). This would simplify a common use case for addBinding in Puppeteer and other automation tools that use addBinding to expose a back-channel for extension code running in an isolated world by making bindings available to such code at an early stage and in a race-free manner (currently, we can only inject a binding into specific context after the creation of the context has been reported to the client, which typically introduces a race with other evals the client may be running in the context). Change-Id: I66454954491a47a0c9aa4864f0aace4da2e67d3a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2440984Reviewed-by:
Simon Zünd <szuend@chromium.org> Reviewed-by:
Pavel Feldman <pfeldman@chromium.org> Commit-Queue: Andrey Kosyakov <caseq@chromium.org> Cr-Commit-Position: refs/heads/master@{#70266}
-
- 08 Sep, 2020 1 commit
-
-
Peter Kvitek authored
The original Profiler.getRuntimeCallStats implementation retrieved a bunch of V8 Counters instead of runtime call counters. This functionality is now available through the new APIs: enableCounters, disableCounters and getCounters. The getRuntimeCallStats API now retrieves real V8 Runtime Call Stats. Change-Id: I702f60a6c43773f5c41b6861be3f9435975c370f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2380853 Commit-Queue: Peter Kvitek <kvitekp@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#69753}
-
- 04 Aug, 2020 1 commit
-
-
Kim-Anh Tran authored
This adds CDP methods to support skipping locations on stepOver and stepInto. Bug: chromium:1105765 Change-Id: I8b902009883807082cf5fda0411b992e90dee81d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2335181Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Commit-Queue: Kim-Anh Tran <kimanh@chromium.org> Cr-Commit-Position: refs/heads/master@{#69223}
-
- 27 Jul, 2020 1 commit
-
-
Sigurd Schneider authored
Currently, only a scriptURL is reported, which can be over-written by sourceURL comments of the script. This means a script can basically claim to come from anywhere. This means that DevTools doesn't know the resource name the embedder provided if there is a sourceURL comment. This CL adds a `embedderName` field to the scriptParsed and scriptFailedToParse events that reports the name the embedder associated with the script. Bug: chromium:974543 Change-Id: I9863f878f57638174847890d9a3818952b1efc27 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2317310 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#69078}
-
- 19 Jun, 2020 1 commit
-
-
Peter Marshall authored
evaluate() bypassed CSP for unsafe-eval by default. This is a useful option for debugging clients, but is not always what we want. e.g. in the devtools console we want to match the page's CSP settings to make debugging CSP issues on the page easier. Add a toggle that keeps the current behavior by default. Bug: chromium:1084558 Change-Id: Ia01142d5be00f8ef5f65e5eeba17549efc6f9120 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2250245 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Simon Zünd <szuend@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#68432}
-
- 09 Jun, 2020 1 commit
-
-
Manos Koukoutos authored
The reference types wasm proposal dropped all subtyping. Subsequently, the 'anyref' type was renamed to externref. This changes all references of the *type* anyref to externref. Additionally, the flag that permits this extension is renamed to "reftypes" to mirror the proposal name. Bug: v8:7748 Change-Id: Icf323f13b9660fd10540e65125af053fca3a03f9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2232941 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Kim-Anh Tran <kimanh@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#68270}
-
- 05 May, 2020 2 commits
-
-
Philip Pfaffe authored
Wasm modules generated by emscripten today have two ways to point to debug symbol files, the source mapping url and external debug info custom sections. To support both, this CL extends CDP to appropriately report the symbol type and location. Bug: chromium:1064248 Change-Id: I9076034f6d73901d8a9c5cfd7c2988fb30bb14c1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2116208Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Philip Pfaffe <pfaffe@chromium.org> Cr-Commit-Position: refs/heads/master@{#67571}
-
Philip Pfaffe authored
Allow the DevTools frontend to evaluate variables in a wasm frame context by reusing the existing Debugger expression evaluation API. Where previously the API expected JavaScript expressions, which would in general just fail, now the expression is expected to be base64 encoded Wasm that creates a JSON string in linear memory. Bug: chromium:1020120 chromium:1068571 Change-Id: I4b31fdb9d3b21b4e08c4995ec2f07880923959e9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2087396Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Simon Zünd <szuend@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Philip Pfaffe <pfaffe@chromium.org> Cr-Commit-Position: refs/heads/master@{#67568}
-
- 20 Apr, 2020 1 commit
-
-
Ng Zhi An authored
Bug: v8:10347 Change-Id: I46890321944cd861f7f8f193e5e499d4d9cd6aea Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2155156Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#67252}
-
- 26 Mar, 2020 1 commit
-
-
Kim-Anh Tran authored
This change adds a stack scope for wasm debugging. Currently the local scope contains both local variables as well as the expression stack. For now, this change duplicates the information available on stacks into the stack scope, until we have added support for the stack scope in the DevTools front-end. Bug: chromium:1043034 Change-Id: Ib0a07e07be7c53003526a7b1e1dbfaa1116b41ad Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2093510 Commit-Queue: Kim-Anh Tran <kimanh@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66867}
-
- 25 Mar, 2020 1 commit
-
-
Ng Zhi An authored
Bug: v8:10347 Bug: chromium:1043034 Change-Id: I804ea511e3ed7c866e0202c97a22dcac007243e8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2117325 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#66857}
-
- 17 Mar, 2020 1 commit
-
-
Philip Pfaffe authored
Add a scriptLanguage enum to the new scripts events. This overhauls crrev.com/c/2011083 that was related. Report the code section offset as well as the script language on the Debugger.scriptParsed and Debugger.scriptFailedToParse events. Bug: chromium:1057569 Change-Id: I40b43f28f0b3e094720db4fc1f07db1a0c293ee0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2083025Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Philip Pfaffe <pfaffe@chromium.org> Cr-Commit-Position: refs/heads/master@{#66749}
-
- 26 Feb, 2020 1 commit
-
-
Simon Zünd authored
R=yangguo@chromium.org Change-Id: Icafeeccdcbe854d6986d3930ec6fcb2c856d274a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2072743 Auto-Submit: Simon Zünd <szuend@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#66444}
-
- 12 Feb, 2020 1 commit
-
-
Sigurd Schneider authored
Coverage updates are sent as deltas, and this means that it is very important that the consumer gets /all/ updates; otherwise, the coverage information will be wrong. Previously, we introduces the ability into the back-end to send triggered updates, i.e. updates that are triggered by the back-end at interesting points in time. These updates are delivered via an event, and any consumer must process these events. This CL introduces a flag to startPreciseCoverage that controls whether the back-end is allowed to send such triggered updates on its own initiative. The default is `false` to maintain backwards compatibility with consumers that don't yet handle the events. Bug: chromium:1022031 Change-Id: Ie36a92a3b627b19ea4041f1b8da1ec66c6b9b771 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2043798Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Dmitry Gozman <dgozman@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#66232}
-
- 03 Feb, 2020 1 commit
-
-
Sigurd Schneider authored
This CL implements functionality to allow an embedder to mark a debug scope as terminate-on-resume. This results in a termination exception when that debug scope is left and execution is resumed. Execution of JavaScript remains possible after a debug scope is marked as terminate-on-resume (but before execution of the paused code resumes). This is used by blink to correctly prevent resuming JavaScript execution upon reload while being paused at a breakpoint. This is important for handling reloads while paused at a breakpoint in blink. The resume command terminates blink's nested message loop that is used while to keep the frame responsive while the debugger is paused. But if a reload is triggered while execution is paused on a breakpoint, but before execution is actually resumed from the breakpoint (that means before returning into the V8 JavaScript frames that are paused on the stack below the C++ frames that belong to the nested message loop), we re-enter V8 to do tear-down actions of the old frame. In this case Runtime.terminateExecution() cannot be used before Debugger.resume(), because the tear-down actions that re-enter V8 would trigger the termination exception and crash the browser (because the browser expected the tear-down to succeed). Hence we introduce this flag on V8 that says: It is OK if someone re-enters V8 (to execute JS), but upon resuming from the breakpoint (i.e. returning to the paused frames that are on the stack below), generate a termination exception. We deliberated adding a corresponding logic on the blink side (instead of V8) but we think this is the simplest solution. More details in the design doc: https://docs.google.com/document/d/1aO9v0YhoKNqKleqfACGUpwrBUayLFGqktz9ltdgKHMk Bug: chromium:1004038, chromium:1014415 Change-Id: I896692d4c21cb0acae89c1d783d37ce45b73c113 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1924366 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Dmitry Gozman <dgozman@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#66084}
-
- 20 Jan, 2020 1 commit
-
-
Sigurd Schneider authored
This CL adds a new event that enables the back-end to send coverage updates on its own initiative. This event can be triggered via the C++ method `triggerPreciseCoverageDeltaUpdate` on the agent in a way that causes coverage data to be immediatelly collected. This is useful in the back-end to collect coverage at a certain point in time, i.e. when a lifecycle event such as first contentful paint occurs. The previous interface could not support this, because it could not reasonably be triggered from C++, and if triggered through the protocol, dispatching messages added delay that invalidated the data (i.e. data might have been taken too late to be accurate). TBR=yangguo@chromium.org Change-Id: I0f7201412a8d64866e6e314e5bc850354c13a9da Bug: chromium:1022031 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1992437 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/master@{#65864}
-
- 13 Jan, 2020 1 commit
-
-
Sigurd Schneider authored
The time was reported in milliseconds, but should be reported in seconds instead. TBR=ulan@chromium.org, szuend@chromium.org Change-Id: I171cdb0107cd522b0d62ac6ed4edfacf7599da0b Bug: chromium:1022031 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1997137Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Simon Zünd <szuend@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#65727}
-
- 10 Jan, 2020 1 commit
-
-
Sigurd Schneider authored
This CL adds timestamps to coverage updates. This is useful for clients, because between requesting a coverage update and collecting coverage data significant time may pass. This change allows precise attribution at what time a coverage update was taken. Change-Id: I65a9cccb0171e892b7dbe35d105d3ca246ba08d0 Bug: chromium:1022031 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1992435Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Simon Zünd <szuend@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#65696}
-
- 18 Dec, 2019 1 commit
-
-
Sigurd Schneider authored
This CL adds an argument to the heap profiler that allows to control whether global objects (e.g. 'window' in JavaScript) are treated as roots in the heap snapshot. Doing so hides blink-internal details and is often a good choice when user-JS leaks are investigated. Sometimes, however, this introduces spurious retainer cycles, which are hard to debug. Previously, this option was exposed as a V8 flag. The blink implications of the build-time V8 flag are now available via the new blink flag `enable_additional_blink_object_names`. Tbr: hpayer@chromium.org Bug: chromium:1034504 Change-Id: Ibe9412917ae598a3ff0c3dc956ab0bc179f50a21 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1967387Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#65491}
-
- 04 Dec, 2019 1 commit
-
-
Joyee Cheung authored
This patch implements inspector support for private instance methods: - Previously to implement brand checking for instances with private instance methods we store the brand both as the value with the brand itself as the key in the stances. Now we make the value the context associated with the class instead. - To retrieve the private instance methods and accessors from the instances at runtime, we look into the contexts stored with the brands, and analyze the scope info to get the names as well as context slot indices of them. - This patch extends the `PrivatePropertyDescriptor` in the inspector protocol to include optional `get` and `set` fields, and make the `value` field optional (similar to `PropertyDescriptor`s). Private fields or private instance methods are returned in the `value` field while private accessors are returned in the `get` and/or `set` field. Property previews for the instaces containing private instance methods and accessors are also updated similarly, although no additional protocol change is necessary since the `PropertyPreview` type can already be used to display accessors. Design doc: https://docs.google.com/document/d/1N91LObhQexnB0eE7EvGe57HsvNMFX16CaWu-XCTnnmY/edit Bug: v8:9839, v8:8330 Change-Id: If37090bd23833a18f75deb1249ca5c4405ca2bf2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1934407 Commit-Queue: Joyee Cheung <joyee@igalia.com> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#65337}
-
- 15 Nov, 2019 1 commit
-
-
Eric Leese authored
Currently the inspector reports Wasm in one of two ways: - If there is a source map, report one script per Wasm script, with bytecode but no source. - If there is no source map, report one script per Wasm function, with source (Wasm disassembly) but no bytecode. With this change, behavior with source map is same, but without source map it will report both ways. This will allow us to change the frontend to do its own disassembly, allowing us to remove the per-function scripts in a future change. Bug: chromium:1013527 Change-Id: I0c559ad08896e8d0da419e3c6ad8d1edff3976fc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1899782Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Eric Leese <leese@chromium.org> Cr-Commit-Position: refs/heads/master@{#64980}
-
- 05 Nov, 2019 1 commit
-
-
Peter Kvitek authored
The new APIs are: enableRuntimeCallStats disableRuntimeCallStats getRuntimeCallStats The RunTime Call Stats are collected per isolate. Change-Id: I7e520e2c866288aa9f9dc74f12572abedf0d3ac8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1881601 Commit-Queue: Peter Kvitek <kvitekp@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#64784}
-
- 22 Oct, 2019 1 commit
-
-
Simon Zünd authored
This CL adds a boolean flag to Runtime.evaluate that allows REPL mode to be enabled. REPL mode hasn't landed in V8 yet, and the internal API for it is still in flux. R=yangguo@chromium.org Bug: chromium:1004193 Change-Id: I281285e225d3fd2dd4175f3dd967d6562459a203 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1866510Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Commit-Queue: Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/master@{#64470}
-
- 08 Oct, 2019 1 commit
-
-
Ingvar Stepanyan authored
Unfortunately, codebase contains lots of places that use one of the two formats as an internal representation for Wasm locations: 1) {line: 0, column: byte offset within entire module} 2) {line: function index, column: byte offset within function} These places choose these formats interchangeably and convert from one to another depending on the presence of source map URL in Wasm. This is not very convenient and makes it hard to add support for DWARF which should behave just like Wasm with source maps - that is, report a raw Wasm script instead of fake scripts per each disassembled function, and use representation (1) instead of (2) internally. I tried to refactor these locations and avoid checking for source map URLs in the previous CL - https://crrev.com/c/v8/v8/+/1833688. However, it quickly got out of hand, and updating code in one place just kept revealing yet another that gets broken by the changes, so I made a decision to abandon it and leave to someone who knows the codebase better. Instead, this CL is based on https://crrev.com/c/v8/v8/+/1809375, but, rather than trying to integrate DWARF separately and only for supported agents, it pretends that encountering DWARF section is the same as encountering a `sourceMappingURL` section with fake URL "wasm://dwarf". This ensures that Wasm with DWARF behaves exactly in the same way as Wasm with source maps, just like we want, with minimal changes to the codebase. The only downside is that frontends without DWARF support won't get even a disassembled version of Wasm that contains DWARF info. This is unfortunate, but, as per previous discussions, should be fine given current state of Wasm debugging. Change-Id: Ia7256075e4bfd2f407d001d02b96883d7267436e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1834341 Commit-Queue: Ingvar Stepanyan <rreverser@google.com> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#64157}
-
- 27 Sep, 2019 1 commit
-
-
Benedikt Meurer authored
This new optional parameter controls whether "Runtime.evaluate" ignores break points and previous "Debugger.pause" calls while evaluating the expression. This will be used for live expressions, which should never interfere with debugging. Bug: chromium:1001216 Change-Id: Ie37f6616a4a1cae40399b79255ab92fb254d91b5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1826664 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#64018}
-