• Clemens Backes's avatar
    [API] Use proper C++ methods to implement type checks · 42f2e1fc
    Clemens Backes authored
    The {TYPE_CHECK} macro used an ancient pattern to check for
    assignability, by assigning to a static_casted nullptrs of the
    respective types.
    C++11 introduced standard library helpers to express this more
    naturally. The most direct translation would have been to use
    {std::is_assignable} or {std::is_convertible} on the pointer types, but
    in most cases we can be even more strict and force one type to be a
    proper subtype of the other.
    The only exception is {ReturnValue}, which allows to assign anything if
    it's void.
    
    R=ulan@chromium.org
    
    Bug: v8:10155
    Change-Id: I41c1103e0206514c8700c47a0bf107ad704cfc47
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2093497Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
    Commit-Queue: Clemens Backes <clemensb@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#66695}
    42f2e1fc
v8.h 391 KB