iter-set-elem-prop-non-writable.js (958B)
1 // Copyright (C) 2020 Alexey Shvayka. All rights reserved. 2 // This code is governed by the BSD license found in the LICENSE file. 3 4 /*--- 5 esid: sec-array.from 6 description: > 7 Non-writable properties are overwritten by CreateDataProperty. 8 (result object's "0" is non-writable, items is iterable) 9 info: | 10 Array.from ( items [ , mapfn [ , thisArg ] ] ) 11 12 [...] 13 5. If usingIterator is not undefined, then 14 [...] 15 e. Repeat, 16 [...] 17 viii. Let defineStatus be CreateDataPropertyOrThrow(A, Pk, mappedValue). 18 [...] 19 features: [generators] 20 includes: [propertyHelper.js] 21 ---*/ 22 23 var items = function* () { 24 yield 2; 25 }; 26 27 var A = function(_length) { 28 Object.defineProperty(this, "0", { 29 value: 1, 30 writable: false, 31 enumerable: false, 32 configurable: true, 33 }); 34 }; 35 36 var res = Array.from.call(A, items()); 37 38 verifyProperty(res, "0", { 39 value: 2, 40 writable: true, 41 enumerable: true, 42 configurable: true, 43 }); 44 45 reportCompare(0, 0);