• Andreas Haas's avatar
    [wasm][anyref] Implement sub-typing of anyref, anyfunc, and nullref · 5d587693
    Andreas Haas authored
    For the reference types anyref, anyfunc, and nullref, there exist
    sub-typing rules. The spec says
    
    A reference type reftype1 matches a reference type reftype2 if and only
    if:
    
    * Either both reftype1 and reftype2 are the same.
    * Or reftype1 is nullref.
    * Or reftype2 is anyref.
    
    This CL introduces the type nullref for ref-null, and implements the
    sub-typing rules in the function-body-decoder.
    
    Note that because of the sub-typing check validation performance may
    regresses. In that case we can optimize the sub-typing check.
    
    R=titzer@chromium.org, clemensh@chromium.org
    
    Bug: v8:7581
    Change-Id: I55bab72a109f3374da3770d141b0fc8067aad8b2
    Reviewed-on: https://chromium-review.googlesource.com/c/1430061
    Commit-Queue: Andreas Haas <ahaas@chromium.org>
    Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
    Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#59043}
    5d587693
function-body-decoder-impl.h 97.2 KB