Chromium Code Reviews| Index: test/mjsunit/harmony/symbols.js |
| diff --git a/test/mjsunit/harmony/symbols.js b/test/mjsunit/harmony/symbols.js |
| index 13a1010879d25a521da1a17faadef3a0704c3c7d..7525eb4c3950ae15a4ab1eb24af1ce02ef1c6ff9 100644 |
| --- a/test/mjsunit/harmony/symbols.js |
| +++ b/test/mjsunit/harmony/symbols.js |
| @@ -184,9 +184,25 @@ function TestKeyEnum(obj) { |
| } |
| -function TestKeyKeys(obj) { |
| +function TestKeyNames(obj) { |
| assertEquals(0, Object.keys(obj).length) |
| - assertTrue(symbols.length <= Object.getOwnPropertyNames(obj).length) |
| + |
| + var names = Object.getOwnPropertyNames(obj) |
| + assertTrue(symbols.length <= names.length) |
| + // TODO(rossberg): once we have iterators, the following would be: |
| + // var expected = new Set(symbols) |
| + var expected = new Set |
| + for (var i = 0; i < symbols.length; ++i) expected.add(symbols[i]) |
| + for (var i = 0; i < names.length; ++i) { |
| + var name = names[i] |
| + var asString = "" + name |
|
Michael Starzinger
2013/03/07 15:39:32
Using "var asString = String(name);" here is clear
rossberg
2013/03/07 15:43:05
Done.
|
| + if (asString !== name) { |
| + assertEquals("[object Symbol]", asString) |
| + assertTrue(expected.has(name)) |
| + expected.delete(name) |
| + } |
| + } |
| + assertEquals(0, expected.size) |
| } |
| @@ -222,7 +238,7 @@ for (var i in objs) { |
| TestKeyGet(obj) |
| TestKeyHas(obj) |
| TestKeyEnum(obj) |
| - TestKeyKeys(obj) |
| + TestKeyNames(obj) |
| TestKeyDescriptor(obj) |
| TestKeyDelete(obj) |
| } |