iter-set-elem-prop.js (1318B)
1 // Copyright (C) 2015 the V8 project authors. All rights reserved. 2 // This code is governed by the BSD license found in the LICENSE file. 3 /*--- 4 esid: sec-array.from 5 description: Setting property on result value (traversed via iterator) 6 info: | 7 [...] 8 6. If usingIterator is not undefined, then 9 [...] 10 g. Repeat 11 [...] 12 ix. Let defineStatus be CreateDataPropertyOrThrow(A, Pk, 13 mappedValue). 14 features: [Symbol.iterator] 15 ---*/ 16 17 var items = {}; 18 var firstIterResult = { 19 done: false, 20 value: {} 21 }; 22 var secondIterResult = { 23 done: false, 24 value: {} 25 }; 26 var thirdIterResult = { 27 done: true, 28 value: {} 29 }; 30 var nextIterResult = firstIterResult; 31 var nextNextIterResult = secondIterResult; 32 var result; 33 34 items[Symbol.iterator] = function() { 35 return { 36 next: function() { 37 var result = nextIterResult; 38 39 nextIterResult = nextNextIterResult; 40 nextNextIterResult = thirdIterResult; 41 42 return result; 43 } 44 }; 45 }; 46 47 result = Array.from(items); 48 49 assert.sameValue( 50 result[0], 51 firstIterResult.value, 52 'The value of result[0] is expected to equal the value of firstIterResult.value' 53 ); 54 assert.sameValue( 55 result[1], 56 secondIterResult.value, 57 'The value of result[1] is expected to equal the value of secondIterResult.value' 58 ); 59 60 reportCompare(0, 0);