| Index: src/json-stringifier.h
|
| diff --git a/src/json-stringifier.h b/src/json-stringifier.h
|
| index f89a19fd4a9b06abf2b1dd4e17a86ef09d38cdd0..1ec6873b1104027cb0396b28fa4129f07068cb05 100644
|
| --- a/src/json-stringifier.h
|
| +++ b/src/json-stringifier.h
|
| @@ -652,8 +652,15 @@ BasicJsonStringifier::Result BasicJsonStringifier::SerializeJSObject(
|
| if (details.IsDontEnum()) continue;
|
| Handle<Object> property;
|
| if (details.type() == FIELD && *map == object->map()) {
|
| - property = Handle<Object>(object->RawFastPropertyAt(
|
| - FieldIndex::ForDescriptor(*map, i)), isolate_);
|
| + FieldIndex field_index = FieldIndex::ForDescriptor(*map, i);
|
| + Isolate* isolate = object->GetIsolate();
|
| + if (object->IsUnboxedDoubleField(field_index)) {
|
| + double value = object->RawFastDoublePropertyAt(field_index);
|
| + property = isolate->factory()->NewHeapNumber(value);
|
| +
|
| + } else {
|
| + property = handle(object->RawFastPropertyAt(field_index), isolate);
|
| + }
|
| } else {
|
| ASSIGN_RETURN_ON_EXCEPTION_VALUE(
|
| isolate_, property,
|
|
|