cf53fed972
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. R=arv@chromium.org,rossberg@chromium.org BUG=chromium:474783 LOG=Y Review URL: https://codereview.chromium.org/1126783003 Cr-Commit-Position: refs/heads/master@{#28242} |
||
---|---|---|
.. | ||
regress-2034.js | ||
regress-2156.js | ||
regress-2186.js | ||
regress-2243.js | ||
regress-2322.js | ||
regress-2506.js | ||
regress-2681.js | ||
regress-2691.js | ||
regress-2829.js | ||
regress-2858.js | ||
regress-3280.js | ||
regress-3426.js | ||
regress-3683.js | ||
regress-3741.js | ||
regress-3902.js | ||
regress-3938.js | ||
regress-347906.js | ||
regress-411237.js | ||
regress-468661.js | ||
regress-474783.js | ||
regress-cr372788.js | ||
regress-crbug-248025.js | ||
regress-crbug-346141.js |