Chromium Code Reviews| Index: src/v8natives.js |
| diff --git a/src/v8natives.js b/src/v8natives.js |
| index a522738b881b9042f4a3cc0a44e3ec76e022229e..468bee0220e505000b3a015d810be7919f88be78 100644 |
| --- a/src/v8natives.js |
| +++ b/src/v8natives.js |
| @@ -1038,16 +1038,15 @@ function ToNameArray(obj, trap, includeSymbols) { |
| } |
| -function ObjectGetOwnPropertyKeys(obj, symbolsOnly) { |
| +function ObjectGetOwnPropertyKeys(obj, filter) { |
| var nameArrays = new InternalArray(); |
| - var filter = symbolsOnly ? |
| - PROPERTY_ATTRIBUTES_STRING | PROPERTY_ATTRIBUTES_PRIVATE_SYMBOL : |
| - PROPERTY_ATTRIBUTES_SYMBOLIC; |
| + filter = (filter || PROPERTY_ATTRIBUTES_NONE) |
| + | PROPERTY_ATTRIBUTES_PRIVATE_SYMBOL; |
| // Find all the indexed properties. |
| // Only get own element names if we want to include string keys. |
| - if (!symbolsOnly) { |
| + if ((filter & PROPERTY_ATTRIBUTES_STRING) === 0) { |
| var ownElementNames = %GetOwnElementNames(obj); |
| for (var i = 0; i < ownElementNames.length; ++i) { |
| ownElementNames[i] = %_NumberToString(ownElementNames[i]); |
| @@ -1089,12 +1088,17 @@ function ObjectGetOwnPropertyKeys(obj, symbolsOnly) { |
| var j = 0; |
| for (var i = 0; i < propertyNames.length; ++i) { |
| var name = propertyNames[i]; |
| - if (symbolsOnly) { |
| - if (!IS_SYMBOL(name) || IS_PRIVATE(name)) continue; |
| + |
| + if (IS_PRIVATE(name)) continue; |
|
arv (Not doing code reviews)
2014/09/09 20:56:53
IS_PRIVATE is only true if IS_SYMBOL is also true
|
| + if (IS_SYMBOL(name)) { |
| + if (filter & PROPERTY_ATTRIBUTES_SYMBOLIC) |
| + continue; |
|
arv (Not doing code reviews)
2014/09/09 20:56:53
fits on previous line
V8 style is to always use {
|
| + } else if (filter & PROPERTY_ATTRIBUTES_STRING) { |
| + continue; |
| } else { |
| - if (IS_SYMBOL(name)) continue; |
| - name = ToString(name); |
| + name = ToSTring(name); |
|
arv (Not doing code reviews)
2014/09/09 20:56:53
typo
|
| } |
| + |
| if (seenKeys[name]) continue; |
| seenKeys[name] = true; |
| propertyNames[j++] = name; |
| @@ -1118,7 +1122,7 @@ function ObjectGetOwnPropertyNames(obj) { |
| return ToNameArray(names, "getOwnPropertyNames", false); |
| } |
| - return ObjectGetOwnPropertyKeys(obj, false); |
| + return ObjectGetOwnPropertyKeys(obj, PROPERTY_ATTRIBUTES_SYMBOLIC); |
| } |