summaryrefslogtreecommitdiff
path: root/test/built-ins/Array/from/elements-added-after.js
blob: 9aafe597ac2c8e1b9bdfd8990004659274e886a8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// Copyright 2015 Microsoft Corporation. All rights reserved.
// This code is governed by the license found in the LICENSE file.

/*---
description: Elements added after the call to from
esid: sec-array.from
es6id: 22.1.2.1
---*/

var arrayIndex = -1;
var originalLength = 7;
var obj = {
    length: originalLength,
    0: 2,
    1: 4,
    2: 8,
    3: 16,
    4: 32,
    5: 64,
    6: 128
};
var array = [ 2, 4, 8, 16, 32, 64, 128 ];
function mapFn(value, index) {
    arrayIndex++;
    assert.sameValue(value, obj[arrayIndex], "Value mismatch in mapFn at index " + index + ".");
    assert.sameValue(index, arrayIndex, "Index mismatch in mapFn.");
    obj[originalLength + arrayIndex] = 2 * arrayIndex + 1;

    return obj[arrayIndex];
}


var a = Array.from(obj, mapFn);
assert.sameValue(a.length, array.length, "Length mismatch.");

for (var j = 0; j < a.length; j++) {
    assert.sameValue(a[j], array[j], "Element mismatch for array at index " + j + ".");
}