• 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
function-body-decoder.cc 77 KB