diff options
Diffstat (limited to 'js/src/tests/test262/built-ins/Object/entries/return-order.js')
-rw-r--r-- | js/src/tests/test262/built-ins/Object/entries/return-order.js | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/js/src/tests/test262/built-ins/Object/entries/return-order.js b/js/src/tests/test262/built-ins/Object/entries/return-order.js new file mode 100644 index 0000000000..a52ef36b0e --- /dev/null +++ b/js/src/tests/test262/built-ins/Object/entries/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.entries +description: Object.entries 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.entries(o).map(function(e) { return e[0]; }); + +var expected = ['0', '1', '2', 'p2', 'add', 'p4', 'p1']; + +assert.compareArray(actual, expected); + +reportCompare(0, 0); |