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 |