Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 637 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 648 PropertyDetails details = map->instance_descriptors()->GetDetails(i); | 648 PropertyDetails details = map->instance_descriptors()->GetDetails(i); |
| 649 if (details.IsDontEnum()) continue; | 649 if (details.IsDontEnum()) continue; |
| 650 Handle<Object> property; | 650 Handle<Object> property; |
| 651 if (details.type() == FIELD && *map == object->map()) { | 651 if (details.type() == FIELD && *map == object->map()) { |
| 652 property = Handle<Object>( | 652 property = Handle<Object>( |
| 653 object->RawFastPropertyAt( | 653 object->RawFastPropertyAt( |
| 654 map->instance_descriptors()->GetFieldIndex(i)), | 654 map->instance_descriptors()->GetFieldIndex(i)), |
| 655 isolate_); | 655 isolate_); |
| 656 } else { | 656 } else { |
| 657 property = GetProperty(isolate_, object, key); | 657 property = GetProperty(isolate_, object, key); |
| 658 if (property.is_null()) return EXCEPTION; | 658 if (property.is_null()) return EXCEPTION; |
|
Igor Sheludko
2014/03/17 16:50:44
RETURN_IF_EMPTY_HANDLE_VALUE(isolate_, property, E
| |
| 659 } | 659 } |
| 660 Result result = SerializeProperty(property, comma, key); | 660 Result result = SerializeProperty(property, comma, key); |
| 661 if (!comma && result == SUCCESS) comma = true; | 661 if (!comma && result == SUCCESS) comma = true; |
| 662 if (result >= EXCEPTION) return result; | 662 if (result >= EXCEPTION) return result; |
| 663 } | 663 } |
| 664 } else { | 664 } else { |
| 665 bool has_exception = false; | 665 bool has_exception = false; |
| 666 Handle<FixedArray> contents = | 666 Handle<FixedArray> contents = |
| 667 GetKeysInFixedArrayFor(object, LOCAL_ONLY, &has_exception); | 667 GetKeysInFixedArrayFor(object, LOCAL_ONLY, &has_exception); |
| 668 if (has_exception) return EXCEPTION; | 668 if (has_exception) return EXCEPTION; |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 680 uint32_t index; | 680 uint32_t index; |
| 681 if (key->IsSmi()) { | 681 if (key->IsSmi()) { |
| 682 property = Object::GetElement( | 682 property = Object::GetElement( |
| 683 isolate_, object, Smi::cast(key)->value()); | 683 isolate_, object, Smi::cast(key)->value()); |
| 684 } else if (key_handle->AsArrayIndex(&index)) { | 684 } else if (key_handle->AsArrayIndex(&index)) { |
| 685 property = Object::GetElement(isolate_, object, index); | 685 property = Object::GetElement(isolate_, object, index); |
| 686 } else { | 686 } else { |
| 687 property = GetProperty(isolate_, object, key_handle); | 687 property = GetProperty(isolate_, object, key_handle); |
| 688 } | 688 } |
| 689 } | 689 } |
| 690 if (property.is_null()) return EXCEPTION; | 690 RETURN_IF_EMPTY_HANDLE_VALUE(isolate_, property, EXCEPTION); |
| 691 Result result = SerializeProperty(property, comma, key_handle); | 691 Result result = SerializeProperty(property, comma, key_handle); |
| 692 if (!comma && result == SUCCESS) comma = true; | 692 if (!comma && result == SUCCESS) comma = true; |
| 693 if (result >= EXCEPTION) return result; | 693 if (result >= EXCEPTION) return result; |
| 694 } | 694 } |
| 695 } | 695 } |
| 696 | 696 |
| 697 Append('}'); | 697 Append('}'); |
| 698 StackPop(); | 698 StackPop(); |
| 699 current_part_ = handle_scope.CloseAndEscape(current_part_); | 699 current_part_ = handle_scope.CloseAndEscape(current_part_); |
| 700 return SUCCESS; | 700 return SUCCESS; |
| (...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 847 SerializeString_<false, uint8_t>(object); | 847 SerializeString_<false, uint8_t>(object); |
| 848 } else { | 848 } else { |
| 849 SerializeString_<false, uc16>(object); | 849 SerializeString_<false, uc16>(object); |
| 850 } | 850 } |
| 851 } | 851 } |
| 852 } | 852 } |
| 853 | 853 |
| 854 } } // namespace v8::internal | 854 } } // namespace v8::internal |
| 855 | 855 |
| 856 #endif // V8_JSON_STRINGIFIER_H_ | 856 #endif // V8_JSON_STRINGIFIER_H_ |
| OLD | NEW |