mirror of
				https://github.com/tc39/test262.git
				synced 2025-11-03 21:24:30 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			39 lines
		
	
	
		
			964 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			964 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
// 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 + ".");
 | 
						|
}
 |