Index: test/mjsunit/harmony/object-entries.js |
diff --git a/test/mjsunit/harmony/object-entries.js b/test/mjsunit/harmony/object-entries.js |
index 58af4d6f337924f21ec33f6a1860f2be89616ba5..47fedd1980be55488eccf757bbb88b5efc2446e6 100644 |
--- a/test/mjsunit/harmony/object-entries.js |
+++ b/test/mjsunit/harmony/object-entries.js |
@@ -3,19 +3,10 @@ |
// found in the LICENSE file. |
// Flags: --harmony-object-values-entries --harmony-proxies --harmony-reflect |
-// Flags: --allow-natives-syntax |
function TestMeta() { |
assertEquals(1, Object.entries.length); |
assertEquals(Function.prototype, Object.getPrototypeOf(Object.entries)); |
- assertEquals("entries", Object.entries.name); |
- |
- var descriptor = Object.getOwnPropertyDescriptor(Object, "entries"); |
- assertTrue(descriptor.writable); |
- assertFalse(descriptor.enumerable); |
- assertTrue(descriptor.configurable); |
- |
- assertThrows(() => new Object.entries({}), TypeError); |
} |
TestMeta(); |
@@ -45,19 +36,8 @@ |
["b", 4] |
], Object.entries(O)); |
assertEquals(Object.entries(O), Object.keys(O).map(key => [key, O[key]])); |
- |
- assertTrue(Array.isArray(Object.entries({}))); |
- assertEquals(0, Object.entries({}).length); |
} |
TestBasic(); |
- |
- |
-function TestToObject() { |
- assertThrows(function() { Object.entries(); }, TypeError); |
- assertThrows(function() { Object.entries(null); }, TypeError); |
- assertThrows(function() { Object.entries(void 0); }, TypeError); |
-} |
-TestToObject(); |
function TestOrder() { |
@@ -67,8 +47,6 @@ |
}; |
O[456] = 123; |
Object.defineProperty(O, "HIDDEN", { enumerable: false, value: NaN }); |
- var priv = %CreatePrivateSymbol("Secret"); |
- O[priv] = 56; |
var log = []; |
var P = new Proxy(O, { |
@@ -80,10 +58,6 @@ |
log.push(`[[Get]](${JSON.stringify(name)})`); |
return Reflect.get(target, name); |
}, |
- getOwnPropertyDescriptor(target, name) { |
- log.push(`[[GetOwnProperty]](${JSON.stringify(name)})`); |
- return Reflect.getOwnPropertyDescriptor(target, name); |
- }, |
set(target, name, value) { |
assertUnreachable(); |
} |
@@ -92,158 +66,8 @@ |
assertEquals([["456", 123], ["a", 1]], Object.entries(P)); |
assertEquals([ |
"[[OwnPropertyKeys]]", |
- "[[GetOwnProperty]](\"456\")", |
"[[Get]](\"456\")", |
- "[[GetOwnProperty]](\"a\")", |
- "[[Get]](\"a\")", |
- "[[GetOwnProperty]](\"HIDDEN\")" |
+ "[[Get]](\"a\")" |
], log); |
} |
TestOrder(); |
- |
- |
-function TestOrderWithDuplicates() { |
- var O = { |
- a: 1, |
- [Symbol.iterator]: null |
- }; |
- O[456] = 123; |
- Object.defineProperty(O, "HIDDEN", { enumerable: false, value: NaN }); |
- var priv = %CreatePrivateSymbol("Secret"); |
- O[priv] = 56; |
- |
- var log = []; |
- var P = new Proxy(O, { |
- ownKeys(target) { |
- log.push("[[OwnPropertyKeys]]"); |
- return ["a", Symbol.iterator, "a", "456", "HIDDEN", "HIDDEN", "456"]; |
- }, |
- get(target, name) { |
- log.push(`[[Get]](${JSON.stringify(name)})`); |
- return Reflect.get(target, name); |
- }, |
- getOwnPropertyDescriptor(target, name) { |
- log.push(`[[GetOwnProperty]](${JSON.stringify(name)})`); |
- return Reflect.getOwnPropertyDescriptor(target, name); |
- }, |
- set(target, name, value) { |
- assertUnreachable(); |
- } |
- }); |
- |
- assertEquals([ |
- ["a", 1], |
- ["a", 1], |
- ["456", 123], |
- ["456", 123] |
- ], Object.entries(P)); |
- assertEquals([ |
- "[[OwnPropertyKeys]]", |
- "[[GetOwnProperty]](\"a\")", |
- "[[Get]](\"a\")", |
- "[[GetOwnProperty]](\"a\")", |
- "[[Get]](\"a\")", |
- "[[GetOwnProperty]](\"456\")", |
- "[[Get]](\"456\")", |
- "[[GetOwnProperty]](\"HIDDEN\")", |
- "[[GetOwnProperty]](\"HIDDEN\")", |
- "[[GetOwnProperty]](\"456\")", |
- "[[Get]](\"456\")" |
- ], log); |
-} |
-TestOrderWithDuplicates(); |
- |
- |
-function TestPropertyFilter() { |
- var object = { prop3: 30 }; |
- object[2] = 40; |
- object["prop4"] = 50; |
- Object.defineProperty(object, "prop5", { value: 60, enumerable: true }); |
- Object.defineProperty(object, "prop6", { value: 70, enumerable: false }); |
- Object.defineProperty(object, "prop7", { |
- enumerable: true, get() { return 80; }}); |
- var sym = Symbol("prop8"); |
- object[sym] = 90; |
- |
- values = Object.entries(object); |
- assertEquals(5, values.length); |
- assertEquals([ |
- [ "2", 40 ], |
- [ "prop3", 30 ], |
- [ "prop4", 50 ], |
- [ "prop5", 60 ], |
- [ "prop7", 80 ] |
- ], values); |
-} |
-TestPropertyFilter(); |
- |
- |
-function TestWithProxy() { |
- var obj1 = {prop1:10}; |
- var proxy1 = new Proxy(obj1, { }); |
- assertEquals([ [ "prop1", 10 ] ], Object.entries(proxy1)); |
- |
- var obj2 = {}; |
- Object.defineProperty(obj2, "prop2", { value: 20, enumerable: true }); |
- Object.defineProperty(obj2, "prop3", { |
- get() { return 30; }, enumerable: true }); |
- var proxy2 = new Proxy(obj2, { |
- getOwnPropertyDescriptor(target, name) { |
- return Reflect.getOwnPropertyDescriptor(target, name); |
- } |
- }); |
- assertEquals([ [ "prop2", 20 ], [ "prop3", 30 ] ], Object.entries(proxy2)); |
- |
- var obj3 = {}; |
- var count = 0; |
- var proxy3 = new Proxy(obj3, { |
- get(target, property, receiver) { |
- return count++ * 5; |
- }, |
- getOwnPropertyDescriptor(target, property) { |
- return { configurable: true, enumerable: true }; |
- }, |
- ownKeys(target) { |
- return [ "prop0", "prop1", Symbol("prop2"), Symbol("prop5") ]; |
- } |
- }); |
- assertEquals([ [ "prop0", 0 ], [ "prop1", 5 ] ], Object.entries(proxy3)); |
-} |
-TestWithProxy(); |
- |
- |
-function TestMutateDuringEnumeration() { |
- var aDeletesB = { |
- get a() { |
- delete this.b; |
- return 1; |
- }, |
- b: 2 |
- }; |
- assertEquals([ [ "a", 1 ] ], Object.entries(aDeletesB)); |
- |
- var aRemovesB = { |
- get a() { |
- Object.defineProperty(this, "b", { enumerable: false }); |
- return 1; |
- }, |
- b: 2 |
- }; |
- assertEquals([ [ "a", 1 ] ], Object.entries(aRemovesB)); |
- |
- var aAddsB = { get a() { this.b = 2; return 1; } }; |
- assertEquals([ [ "a", 1 ] ], Object.entries(aAddsB)); |
- |
- var aMakesBEnumerable = {}; |
- Object.defineProperty(aMakesBEnumerable, "a", { |
- get() { |
- Object.defineProperty(this, "b", { enumerable: true }); |
- return 1; |
- }, |
- enumerable: true |
- }); |
- Object.defineProperty(aMakesBEnumerable, "b", { |
- value: 2, configurable:true, enumerable: false }); |
- assertEquals([ [ "a", 1 ], [ "b", 2 ] ], Object.entries(aMakesBEnumerable)); |
-} |
-TestMutateDuringEnumeration(); |