|  | // 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 --harmony-promise-any | 
|  |  | 
|  | load('test/mjsunit/test-async.js'); | 
|  |  | 
|  | // Make sure we properly throw a RangeError when overflowing the maximum | 
|  | // number of elements for Promise.any, which is capped at 2^21 bits right | 
|  | // now, since we store the indices as identity hash on the resolve element | 
|  | // closures. | 
|  | const a = new Array(2 ** 21 - 1); | 
|  | const p = Promise.resolve(1); | 
|  | for (let i = 0; i < a.length; ++i) a[i] = p; | 
|  | testAsync(assert => { | 
|  | assert.plan(1); | 
|  | Promise.any(a).then(assert.unreachable, reason => { | 
|  | assert.equals(true, reason instanceof RangeError); | 
|  | }); | 
|  | }); |