• chunyang.dai's avatar
    X87: Handle the case when derived constructor is [[Call]]ed with 0 args. · 5f047ff6
    chunyang.dai authored
    port cf53fed9 (r28242).
    
    original commit message:
    
        ArgumentsAdaptorStub for derived constructor (the one that needs
        new.target) works in this way:
         - If the constructor is invoked via the Construct stub, we know that
           actual arguments always include new.target. ``arguments`` object
           however should not include a new.target, therefore we remove it.
           We achieve this by decrementing the argument count.
         - If the constructor is invoked as a call, we do not care for a correct
           ``arguments`` array since the constructor will immediately throw on
           entrance.
        The bug is that the call could actually pass 0 actual arguments, but I
        decrement unconditionally :(. The fix is to detect this case and avoid
        decrementing. ``arguments`` is bogus, but it is ok as constructor
        throws.
    
        Long-term we should just remove mucking about with arguments for
        new.target and just get it from the stack.
    
    BUG=
    
    Review URL: https://codereview.chromium.org/1124063002
    
    Cr-Commit-Position: refs/heads/master@{#28246}
    5f047ff6
code-stubs-x87.cc 177 KB