• bmeurer's avatar
    Correctify instanceof and make it optimizable. · 5d875a57
    bmeurer authored
    The previous hack with HInstanceOfKnownGlobal was not only slower,
    but also very brittle and required a lot of weird hacks to support it. And
    what's even more important it wasn't even correct (because a map check
    on the lhs is never enough for instanceof).
    
    The new implementation provides a sane runtime implementation
    for InstanceOf plus a fast case in the InstanceOfStub, combined with
    a proper specialization in the case of a known global in CrankShaft,
    which does only the prototype chain walk (coupled with a code
    dependency on the known global).
    
    As a drive-by-fix: Also fix the incorrect Object.prototype.isPrototypeOf
    implementation.
    
    BUG=v8:4376
    LOG=y
    
    Review URL: https://codereview.chromium.org/1304633002
    
    Cr-Commit-Position: refs/heads/master@{#30342}
    5d875a57
Name
Last commit
Last update
..
OWNERS Loading commit data...
assembler-arm64-inl.h Loading commit data...
assembler-arm64.cc Loading commit data...
assembler-arm64.h Loading commit data...
builtins-arm64.cc Loading commit data...
code-stubs-arm64.cc Loading commit data...
code-stubs-arm64.h Loading commit data...
codegen-arm64.cc Loading commit data...
codegen-arm64.h Loading commit data...
constants-arm64.h Loading commit data...
cpu-arm64.cc Loading commit data...
decoder-arm64-inl.h Loading commit data...
decoder-arm64.cc Loading commit data...
decoder-arm64.h Loading commit data...
delayed-masm-arm64-inl.h Loading commit data...
delayed-masm-arm64.cc Loading commit data...
delayed-masm-arm64.h Loading commit data...
deoptimizer-arm64.cc Loading commit data...
disasm-arm64.cc Loading commit data...
disasm-arm64.h Loading commit data...
frames-arm64.cc Loading commit data...
frames-arm64.h Loading commit data...
instructions-arm64.cc Loading commit data...
instructions-arm64.h Loading commit data...
instrument-arm64.cc Loading commit data...
instrument-arm64.h Loading commit data...
interface-descriptors-arm64.cc Loading commit data...
interface-descriptors-arm64.h Loading commit data...
lithium-arm64.cc Loading commit data...
lithium-arm64.h Loading commit data...
lithium-codegen-arm64.cc Loading commit data...
lithium-codegen-arm64.h Loading commit data...
lithium-gap-resolver-arm64.cc Loading commit data...
lithium-gap-resolver-arm64.h Loading commit data...
macro-assembler-arm64-inl.h Loading commit data...
macro-assembler-arm64.cc Loading commit data...
macro-assembler-arm64.h Loading commit data...
simulator-arm64.cc Loading commit data...
simulator-arm64.h Loading commit data...
utils-arm64.cc Loading commit data...
utils-arm64.h Loading commit data...