node/deps/v8/test/mjsunit/harmony/array-from-async.js
Michaël Zasso 9d7cd9b864
deps: update V8 to 12.8.374.13
PR-URL: https://github.com/nodejs/node/pull/54077
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
2024-08-16 16:03:01 +02:00

61 lines
1.4 KiB
JavaScript

// Copyright 2023 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.
async function* asyncGen(n) {
for (let i = 0; i < n; i++) yield i * 2;
}
function* gen() {
yield 42;
yield 43;
yield 44;
}
(async function TestArrayFromAsync() {
const arr = await Array.fromAsync(asyncGen(4));
assertEquals([0, 2, 4, 6], arr);
})();
(async function TestArrayFromAsyncSyncIterator() {
const arr = await Array.fromAsync(gen());
assertEquals([42, 43, 44], arr);
})();
(async function TestArrayFromAsyncWithMapping() {
const arr = await Array.fromAsync(asyncGen(4), v => v **2);
assertEquals([0, 4, 16, 36], arr);
})();
(async function TestArrayFromAsyncSyncIteratorWithMapping() {
const arr = await Array.fromAsync(gen(), v => v + 4);
assertEquals([46, 47, 48], arr);
})();
(async function TestArrayFromAsyncSyncArrayWithMapping() {
const arr = await Array.fromAsync([1, 2, 3], v => v + 4);
assertEquals([5, 6, 7], arr);
})();
(async function TestArrayFromAsyncArrayLike() {
const arrayLike = {
length: 3,
0: 1,
1: 2,
2: 3
};
const arr = await Array.fromAsync(arrayLike);
assertEquals([1, 2, 3], arr);
})();
(async function TestArrayFromAsyncArrayLikeWithMapping() {
const arrayLike = {
length: 3,
0: 1,
1: 2,
2: 3
};
const arr = await Array.fromAsync(arrayLike, v => v **2);
assertEquals([1, 4, 9], arr);
})();