Chromium Code Reviews| Index: src/v8natives.js |
| diff --git a/src/v8natives.js b/src/v8natives.js |
| index 9c822b266b7c2e4607c41e718e3edcc62d45addc..13264d5d346dbe018676e11971d7fd4f7bae29b8 100644 |
| --- a/src/v8natives.js |
| +++ b/src/v8natives.js |
| @@ -26,6 +26,8 @@ var $objectLookupGetter; |
| var $objectLookupSetter; |
| var $objectToString; |
| var $overrideFunction; |
| +var $ownPropertyKeys; |
|
arv (Not doing code reviews)
2015/05/06 15:35:48
$ownPropertyKeys does not need to be exported
|
| +var $propertyIsEnumerable; |
| var $setFunctionName; |
| var $setUpLockedPrototype; |
| var $toCompletePropertyDescriptor; |
| @@ -1141,6 +1143,19 @@ function ObjectGetOwnPropertyKeys(obj, filter) { |
| } |
| +// ES6 section 9.1.12 / 9.5.12 |
| +function OwnPropertyKeys(obj) { |
| + if (%_IsJSProxy(obj)) { |
| + var handler = %GetHandler(obj); |
| + // TODO(caitp): Proxy.[[OwnPropertyKeys]] can not be implemented to spec |
| + // without an implementation of Direct Proxies. |
| + var names = CallTrap0(handler, "ownKeys", UNDEFINED); |
| + return ToNameArray(names, "getOwnPropertyNames", false); |
| + } |
| + return ObjectGetOwnPropertyKeys(obj, PROPERTY_ATTRIBUTES_PRIVATE_SYMBOL); |
| +} |
| + |
| + |
| // ES5 section 15.2.3.4. |
| function ObjectGetOwnPropertyNames(obj) { |
| obj = TO_OBJECT_INLINE(obj); |
| @@ -1943,6 +1958,8 @@ $objectLookupGetter = ObjectLookupGetter; |
| $objectLookupSetter = ObjectLookupSetter; |
| $objectToString = ObjectToString; |
| $overrideFunction = OverrideFunction; |
| +$ownPropertyKeys = OwnPropertyKeys; |
| +$propertyIsEnumerable = ObjectPropertyIsEnumerable; |
| $setFunctionName = SetFunctionName; |
| $setUpLockedPrototype = SetUpLockedPrototype; |
| $toCompletePropertyDescriptor = ToCompletePropertyDescriptor; |