• 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
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides Loading commit data...
docs Loading commit data...
gni Loading commit data...
gypfiles Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.editorconfig Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
LICENSE Loading commit data...
LICENSE.fdlibm Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
Makefile Loading commit data...
Makefile.android Loading commit data...
OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...
snapshot_toolchain.gni Loading commit data...