• Jakob Gruber's avatar
    [coverage] Rework continuation counter handling · 9365d090
    Jakob Gruber authored
    This changes a few bits about how continuation counters are handled.
    
    It introduces a new mechanism that allows removal of a continuation
    range after it has been created. If coverage is enabled, we run a first
    post-processing pass on the AST immediately after parsing, which
    removes problematic continuation ranges in two situations:
    
    1. nested continuation counters - only the outermost stays alive.
    2. trailing continuation counters within a block-like structure are
       removed if the containing structure itself has a continuation.
    
    R=bmeurer@chromium.org, jgruber@chromium.org, yangguo@chromium.org
    
    Bug: v8:8381, v8:8539
    Change-Id: I6bcaea5060d8c481d7bae099f6db9f993cc30ee3
    Reviewed-on: https://chromium-review.googlesource.com/c/1339119Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
    Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
    Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
    Commit-Queue: Jakob Gruber <jgruber@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#58443}
    9365d090
bytecode-generator.cc 198 KB