Chromium Code Reviews| Index: test/mjsunit/harmony/object-entries.js |
| diff --git a/test/mjsunit/harmony/object-entries.js b/test/mjsunit/harmony/object-entries.js |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..d05f467f4ef874aeca4a427014032d2ed8c2f2e1 |
| --- /dev/null |
| +++ b/test/mjsunit/harmony/object-entries.js |
| @@ -0,0 +1,68 @@ |
| +// Copyright 2016 the V8 project authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +// Flags: --harmony-object-values --harmony-proxies --harmony-reflect |
| + |
| +function TestMeta() { |
| + assertEquals(1, Object.entries.length); |
| + assertEquals(Function.prototype, Object.getPrototypeOf(Object.entries)); |
| +} |
| +TestMeta(); |
| + |
| + |
| +function TestBasic() { |
| + var O = { |
|
rossberg
2016/01/14 13:18:43
Maybe add a computed property name.
caitp (gmail)
2016/01/14 14:13:24
Done.
|
| + d: 1, |
| + c: 3, |
| + [Symbol.iterator]: void 0, |
| + 0: 123, |
| + 1000: 456 |
| + }; |
| + O.a = 2; |
| + O.b = 4; |
| + Object.defineProperty(O, "HIDDEN", { enumerable: false, value: NaN }); |
| + assertEquals([ |
| + ["0", 123], |
| + ["1000", 456], |
| + ["d", 1], |
| + ["c", 3], |
| + ["a", 2], |
| + ["b", 4] |
| + ], Object.entries(O)); |
| + assertEquals(Object.entries(O), Object.keys(O).map(key => [key, O[key]])); |
| +} |
| +TestBasic(); |
| + |
| + |
| +function TestOrder() { |
| + var O = { |
| + a: 1, |
| + [Symbol.iterator]: null |
| + }; |
| + O[456] = 123; |
| + Object.defineProperty(O, "HIDDEN", { enumerable: false, value: NaN }); |
| + |
| + var log = []; |
| + var P = new Proxy(O, { |
| + ownKeys(target) { |
| + log.push("[[OwnPropertyKeys]]"); |
| + return Reflect.ownKeys(target); |
| + }, |
| + get(target, name) { |
| + log.push(`[[Get]](${JSON.stringify(name)})`); |
| + return Reflect.get(target, name); |
| + }, |
| + set(target, name, value) { |
| + assertUnreachable(); |
| + } |
| + }); |
| + |
| + assertEquals([["456", 123], ["a", 1]], Object.entries(P)); |
| + assertEquals([ |
| + "[[OwnPropertyKeys]]", |
| + "[[Get]](\"456\")", |
| + "[[Get]](\"a\")" |
| + ], log); |
| +} |
| +TestOrder(); |