• ager@chromium.org's avatar
    Fix calls of strict mode function with an implicit receiver. · 6f775f2f
    ager@chromium.org authored
    Only IA32 version for now. I'll start porting.
    
    Strict mode functions are to get 'undefined' as the receiver when
    called with an implicit receiver. Modes are bad! It forces us to have
    checks on all function calls.
    
    This change attempts to limit the cost by passing information about
    whether or not a call is with an implicit or explicit receiver in ecx
    as part of the calling convention. The cost is setting ecx on all
    calls and checking ecx on entry to strict mode functions.
    
    Implicit/explicit receiver state has to be maintained by ICs. Various
    stubs have to not clobber ecx or save and restore it.
    
    CallFunction stub needs to check if the receiver is implicit when it
    doesn't know from the context.
    
    Review URL: http://codereview.chromium.org/7039036
    
    git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8040 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
    6f775f2f
lithium-codegen-x64.cc 139 KB