• Clemens Backes's avatar
    [wasm] Send a single scriptParsed event per script · b471bc93
    Clemens Backes authored
    If a script was shared between multiple modules (because they used the
    same wire bytes) it could happen that we still triggered multiple
    "scriptParsed" events via CDP. This was because
    {WasmEngine::GetOrCreateScript} did not communicate back whether it
    used a cached script or whether it created a new one.
    
    This CL moves the call to {Debug::OnAfterCompile} (which triggers the
    "scriptParsed" event) to the {WasmEngine::GetOrCreateScript} method,
    such that we only call it once per script.
    Since the engine only holds a weak reference to the script, we would
    still trigger multiple events if the script is garbage-collected in the
    meantime. In this case there is no way around this, as the new script
    would have a new ID, hence we need to emit a new event to make it
    public to the debugger.
    
    R=thibaudm@chromium.org
    CC=bmeurer@chromium.org
    
    Bug: chromium:1151211
    Change-Id: I1a7986514fd708680541a0e5dc24e60f01f42c28
    Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_isolates_rel_ng
    Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel_ng
    Cq-Include-Trybots: luci.v8.try:v8_mac64_gc_stress_dbg_ng
    Cq-Include-Trybots: luci.v8.try:v8_linux_gc_stress_dbg_ng
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2687755Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
    Reviewed-by: 's avatarThibaud Michaud <thibaudm@chromium.org>
    Commit-Queue: Clemens Backes <clemensb@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#72648}
    b471bc93
wasm-engine.h 17.9 KB