• ishell's avatar
    Array length reduction should throw in strict mode if it can't delete an element. · ed2be747
    ishell authored
    When accessor getter callback is called the v8::PropertyCallbackInfo::ShouldThrowOnError() is always false, since according to ES6 there's no difference between strict and non-strict property loads. For the setter case the v8::PropertyCallbackInfo::ShouldThrowOnError() returns true if the property is set in strict context.
    
    Interceptors follow same idea: for getter, enumerator and query callbacks the v8::PropertyCallbackInfo::ShouldThrowOnError() is always false, and for setter and deleter callback the v8::PropertyCallbackInfo::ShouldThrowOnError() returns true in strict context.
    
    This CL also cleans up the CallApiGetterStub and removes bogus asserts from [arm] Push(reg1, reg2, ..., regN) that prevented from pushing a set of registers containing duplicates.
    
    BUG=v8:4267
    LOG=Y
    
    Committed: https://crrev.com/1d3e837fcbbd9d9fd5e72dfe85dfd47c025f3c9f
    Cr-Commit-Position: refs/heads/master@{#33438}
    
    Review URL: https://codereview.chromium.org/1587073003
    
    Cr-Commit-Position: refs/heads/master@{#33461}
    ed2be747
regress-4267.js 460 Bytes