regress-1092011.js 720 Bytes
Newer Older
1 2 3 4
// Copyright 2020 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

5
// Flags: --always-opt --ignore-unhandled-promises
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

var __caught = 0;

(function main() {
  function foo(f) {
    const pr = new Promise(function executor() {
      f(function resolvefun() {
        try {
          throw 42;
        } catch (e) {
          __caught++;
        }
      }, function rejectfun() {});
    });
    pr.__proto__ = foo.prototype;
    return pr;
  }
  foo.__proto__ = Promise;
  foo.prototype.then = function thenfun() {};
  new foo();
  foo.prototype = undefined;
  foo.all([foo.resolve()]);
})();

assertEquals(2, __caught);