• bmeurer's avatar
    [builtins] Unify the various versions of [[Call]] with a Call builtin. · ccbb4ff0
    bmeurer authored
    The new Call and CallFunction builtins supersede the current
    CallFunctionStub (and CallIC magic) and will be the single bottleneck
    for all calling, including the currently special Function.prototype.call
    and Function.prototype.apply builtins, which had handwritten (and
    not fully compliant) versions of CallFunctionStub, and also the
    CallIC(s), which where also slightly different.
    
    This also reduces the overhead for API function calls, which is still
    unnecessary high, but let's do that step-by-step.
    
    This also fixes a bunch of cases where the implicit ToObject for
    sloppy receivers was done in the wrong context (in the caller
    context instead of the callee context), which basically meant
    that we allowed cross context access to %ObjectPrototype%.
    
    MIPS and MIPS64 ports contributed by akos.palfi@imgtec.com.
    
    R=mstarzinger@chromium.org, jarin@chromium.org, mvstanton@chromium.org
    CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_layout_dbg,v8_linux_nosnap_dbg
    BUG=v8:4413
    LOG=n
    
    Committed: https://crrev.com/ef268a83be4dead004047c25b702319ea4be7277
    Cr-Commit-Position: refs/heads/master@{#30627}
    
    Review URL: https://codereview.chromium.org/1311013008
    
    Cr-Commit-Position: refs/heads/master@{#30629}
    ccbb4ff0
macro-assembler-x64.h 67.1 KB