| // Copyright (c) 2012 Ecma International. All rights reserved. |
| // This code is governed by the BSD license found in the LICENSE file. |
| |
| /*--- |
| es5id: 15.2.3.14-5-13 |
| description: > |
| Object.keys - own enumerable indexed data property of sparse array |
| 'O' is defined in returned array |
| ---*/ |
| |
| var obj = [1, , 3, , 5]; |
| |
| Object.defineProperty(obj, 5, { |
| value: 7, |
| enumerable: false, |
| configurable: true |
| }); |
| |
| Object.defineProperty(obj, 10000, { |
| value: "ElementWithLargeIndex", |
| enumerable: true, |
| configurable: true |
| }); |
| |
| var arr = Object.keys(obj); |
| |
| var index; |
| var initValue = 0; |
| for (index = 0; index < 3; index++) { |
| assert.sameValue(arr[index], initValue.toString(), 'Unexpected property at index: ' + index); |
| initValue += 2; |
| } |
| |
| assert.sameValue(arr.length, 4, 'arr.length'); |
| assert.sameValue(arr[3], "10000", 'arr[3]'); |