// Copyright 2019 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. class MyPromise extends Promise { static resolve() { return { then() { throw "then throws"; } }; } } let myIterable = { [Symbol.iterator]() { return { next() { return {}; }, get return() { return {}; }, }; } }; MyPromise.race(myIterable).then( assertUnreachable, (e) => { assertEquals(e, "then throws")});