| Index: src/json-stringifier.cc
|
| diff --git a/src/json-stringifier.cc b/src/json-stringifier.cc
|
| index 192c01202fd1b0d0b69f049b47f739bf3ebef7f5..6293b0c4593944f30a1832dbf34f7fc6931b6cb2 100644
|
| --- a/src/json-stringifier.cc
|
| +++ b/src/json-stringifier.cc
|
| @@ -534,33 +534,20 @@ JsonStringifier::Result JsonStringifier::SerializeJSReceiverSlow(
|
| ASSIGN_RETURN_ON_EXCEPTION_VALUE(
|
| isolate_, contents,
|
| KeyAccumulator::GetKeys(object, KeyCollectionMode::kOwnOnly,
|
| - ENUMERABLE_STRINGS),
|
| + ENUMERABLE_STRINGS,
|
| + GetKeysConversion::kConvertToString),
|
| EXCEPTION);
|
| }
|
| builder_.AppendCharacter('{');
|
| Indent();
|
| bool comma = false;
|
| for (int i = 0; i < contents->length(); i++) {
|
| - Object* key = contents->get(i);
|
| - Handle<String> key_handle;
|
| - MaybeHandle<Object> maybe_property;
|
| - if (key->IsString()) {
|
| - key_handle = Handle<String>(String::cast(key), isolate_);
|
| - maybe_property = Object::GetPropertyOrElement(object, key_handle);
|
| - } else {
|
| - DCHECK(key->IsNumber());
|
| - key_handle = factory()->NumberToString(Handle<Object>(key, isolate_));
|
| - if (key->IsSmi()) {
|
| - maybe_property =
|
| - JSReceiver::GetElement(isolate_, object, Smi::cast(key)->value());
|
| - } else {
|
| - maybe_property = Object::GetPropertyOrElement(object, key_handle);
|
| - }
|
| - }
|
| + Handle<String> key(String::cast(contents->get(i)), isolate_);
|
| Handle<Object> property;
|
| - ASSIGN_RETURN_ON_EXCEPTION_VALUE(isolate_, property, maybe_property,
|
| + ASSIGN_RETURN_ON_EXCEPTION_VALUE(isolate_, property,
|
| + Object::GetPropertyOrElement(object, key),
|
| EXCEPTION);
|
| - Result result = SerializeProperty(property, comma, key_handle);
|
| + Result result = SerializeProperty(property, comma, key);
|
| if (!comma && result == SUCCESS) comma = true;
|
| if (result == EXCEPTION) return result;
|
| }
|
| @@ -572,6 +559,7 @@ JsonStringifier::Result JsonStringifier::SerializeJSReceiverSlow(
|
|
|
| JsonStringifier::Result JsonStringifier::SerializeJSProxy(
|
| Handle<JSProxy> object) {
|
| + HandleScope scope(isolate_);
|
| Result stack_push = StackPush(object);
|
| if (stack_push != SUCCESS) return stack_push;
|
| Maybe<bool> is_array = Object::IsArray(object);
|
|
|