• bmeurer's avatar
    [builtins] Unify the various versions of [[Call]] with a Call builtin. · ef268a83
    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
    BUG=v8:4413
    LOG=n
    
    Review URL: https://codereview.chromium.org/1311013008
    
    Cr-Commit-Position: refs/heads/master@{#30627}
    ef268a83
macro-assembler-x64.h 67.1 KB