Partial rollback of Promise error checking
As V8 becomes more and more spec-compliant, Promise polyfill libraries like core.js expect fully correct. However, our Promises do not yet support Symbol.species. Therefore, a case like ``` var test = new Promise(function(){}); test.constructor = function(){}; Promise.resolve(test) ``` would lead to an unhandled Promise rejection, whereas it should not because test.constructor[Symbol.species] is undefined, so test.then should end up constructing %Promise% as a fallback, rather than calling test.constructor as if it were a constructor, which leads this error checking code to throw. For now, this patch removes the error checking code (which was not present until recently). In an interactive test using core.js, the error message on the console goes away with this patch. When @@species support is in place, this patch can be reverted. A regression test is added which checks for the same thing. Partially reverted patch was originally out for review at https://codereview.chromium.org/1531073004 BUG=v8:4633 LOG=Y R=adamk,caitp88@gmail.com Review URL: https://codereview.chromium.org/1578893002 Cr-Commit-Position: refs/heads/master@{#33217}
Showing
Please
register
or
sign in
to comment