summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/built-ins/Object/keys/15.2.3.14-5-13.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/tests/test262/built-ins/Object/keys/15.2.3.14-5-13.js')
-rw-r--r--js/src/tests/test262/built-ins/Object/keys/15.2.3.14-5-13.js37
1 files changed, 37 insertions, 0 deletions
diff --git a/js/src/tests/test262/built-ins/Object/keys/15.2.3.14-5-13.js b/js/src/tests/test262/built-ins/Object/keys/15.2.3.14-5-13.js
new file mode 100644
index 0000000000..05be7a5c23
--- /dev/null
+++ b/js/src/tests/test262/built-ins/Object/keys/15.2.3.14-5-13.js
@@ -0,0 +1,37 @@
+// 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]');
+
+reportCompare(0, 0);