| Index: src/builtins.cc
|
| diff --git a/src/builtins.cc b/src/builtins.cc
|
| index f47c2b6350861d955b9960f77793e8dabbd0d877..35671d2c4c813c5adccd36ca989e9f101e6cb092 100644
|
| --- a/src/builtins.cc
|
| +++ b/src/builtins.cc
|
| @@ -1566,8 +1566,11 @@ BUILTIN(ObjectFreeze) {
|
| }
|
|
|
|
|
| -// ES6 section 19.1.2.8 Object.getOwnPropertySymbols ( O )
|
| -BUILTIN(ObjectGetOwnPropertySymbols) {
|
| +namespace {
|
| +
|
| +Object* GetOwnPropertyKeys(Isolate* isolate,
|
| + BuiltinArguments<BuiltinExtraArguments::kNone> args,
|
| + PropertyFilter filter) {
|
| HandleScope scope(isolate);
|
| Handle<Object> object = args.atOrUndefined(isolate, 1);
|
| Handle<JSReceiver> receiver;
|
| @@ -1575,11 +1578,25 @@ BUILTIN(ObjectGetOwnPropertySymbols) {
|
| Object::ToObject(isolate, object));
|
| Handle<FixedArray> keys;
|
| ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
|
| - isolate, keys, JSReceiver::GetKeys(receiver, JSReceiver::OWN_ONLY,
|
| - SKIP_STRINGS, CONVERT_TO_STRING));
|
| + isolate, keys, JSReceiver::GetKeys(receiver, JSReceiver::OWN_ONLY, filter,
|
| + CONVERT_TO_STRING));
|
| return *isolate->factory()->NewJSArrayWithElements(keys);
|
| }
|
|
|
| +} // namespace
|
| +
|
| +
|
| +// ES6 section 19.1.2.7 Object.getOwnPropertyNames ( O )
|
| +BUILTIN(ObjectGetOwnPropertyNames) {
|
| + return GetOwnPropertyKeys(isolate, args, SKIP_SYMBOLS);
|
| +}
|
| +
|
| +
|
| +// ES6 section 19.1.2.8 Object.getOwnPropertySymbols ( O )
|
| +BUILTIN(ObjectGetOwnPropertySymbols) {
|
| + return GetOwnPropertyKeys(isolate, args, SKIP_STRINGS);
|
| +}
|
| +
|
|
|
| // ES6 section 19.1.2.11 Object.isExtensible ( O )
|
| BUILTIN(ObjectIsExtensible) {
|
|
|