| // 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. |
| |
| // Flags: --allow-natives-syntax |
| |
| load('test/mjsunit/test-async.js'); |
| |
| // Promise.race should not call GetIterator if Promise.resolve is not callable. |
| |
| let getIteratorCount = 0; |
| let iter = { |
| get [Symbol.iterator]() { |
| ++getIteratorCount; |
| } |
| }; |
| |
| Promise.resolve = "certainly not callable"; |
| |
| testAsync(assert => { |
| assert.plan(2); |
| Promise.race(iter).then(assert.unreachable, reason => { |
| assert.equals(true, reason instanceof TypeError); |
| assert.equals(0, getIteratorCount); |
| }); |
| }); |