diff options
Diffstat (limited to '')
-rw-r--r-- | js/src/tests/test262/built-ins/Object/values/return-order.js | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/js/src/tests/test262/built-ins/Object/values/return-order.js b/js/src/tests/test262/built-ins/Object/values/return-order.js new file mode 100644 index 0000000000..073baf8b38 --- /dev/null +++ b/js/src/tests/test262/built-ins/Object/values/return-order.js @@ -0,0 +1,43 @@ +// Copyright 2019 Kevin Gibbons. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-object.values +description: Object.values enumeration order +features: [for-in-order] +includes: [compareArray.js] +---*/ + +var o = { + p1: 'p1', + p2: 'p2', + p3: 'p3', +}; + +// This getter will be triggered during enumeration, but the property it adds should not be enumerated. +Object.defineProperty(o, 'add', { + enumerable: true, + get: function () { + o.extra = 'extra'; + return 'add'; + } +}); + +o.p4 = 'p4'; + +o[2] = '2'; +o[0] = '0'; +o[1] = '1'; + +delete o.p1; +delete o.p3; +o.p1 = 'p1'; + + +var actual = Object.values(o); + +var expected = ['0', '1', '2', 'p2', 'add', 'p4', 'p1']; + +assert.compareArray(actual, expected); + +reportCompare(0, 0); |