blob: 46b403bdfbcd62ca37fc0912475cb4c499f80161 [file] [log] [blame]
// Copyright (c) 2021 Rick Waldron. All rights reserved.
// This code is governed by the license found in the LICENSE file.
/*---
esid: sec-array.from
description: >
Creates an array with length that is equal to the value of the
length property of the given array-like, regardless of
the presence of corresponding indices and values.
info: |
Array.from ( items [ , mapfn [ , thisArg ] ] )
7. Let arrayLike be ! ToObject(items).
8. Let len be ? LengthOfArrayLike(arrayLike).
9. If IsConstructor(C) is true, then
a. Let A be ? Construct(C, « 𝔽(len) »).
10. Else,
a. Let A be ? ArrayCreate(len).
includes: [compareArray.js]
---*/
const length = 5;
const newlyCreatedArray = Array.from({ length });
assert.sameValue(
newlyCreatedArray.length,
length,
"The newly created array's length is equal to the value of the length property for the provided array like object"
);
assert.compareArray(newlyCreatedArray, [undefined, undefined, undefined, undefined, undefined]);
const newlyCreatedAndMappedArray = Array.from({ length }).map(x => 1);
assert.sameValue(
newlyCreatedAndMappedArray.length,
length,
"The newly created and mapped array's length is equal to the value of the length property for the provided array like object"
);
assert.compareArray(newlyCreatedAndMappedArray, [1, 1, 1, 1, 1]);