diff options
Diffstat (limited to 'deps/v8/test/mjsunit/harmony/promise-any-overflow-1.js')
-rw-r--r-- | deps/v8/test/mjsunit/harmony/promise-any-overflow-1.js | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/deps/v8/test/mjsunit/harmony/promise-any-overflow-1.js b/deps/v8/test/mjsunit/harmony/promise-any-overflow-1.js new file mode 100644 index 00000000000..0a95edd05c3 --- /dev/null +++ b/deps/v8/test/mjsunit/harmony/promise-any-overflow-1.js @@ -0,0 +1,21 @@ +// 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); + }); +}); |