| 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 2960 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2971 name, | 2971 name, |
| 2972 value); | 2972 value); |
| 2973 } | 2973 } |
| 2974 return ConvertDescriptorToField(name, value, attributes); | 2974 return ConvertDescriptorToField(name, value, attributes); |
| 2975 case CONSTANT_FUNCTION: | 2975 case CONSTANT_FUNCTION: |
| 2976 // Only replace the function if necessary. | 2976 // Only replace the function if necessary. |
| 2977 if (value == result->GetConstantFunction()) return value; | 2977 if (value == result->GetConstantFunction()) return value; |
| 2978 // Preserve the attributes of this existing property. | 2978 // Preserve the attributes of this existing property. |
| 2979 attributes = result->GetAttributes(); | 2979 attributes = result->GetAttributes(); |
| 2980 return ConvertDescriptorToField(name, value, attributes); | 2980 return ConvertDescriptorToField(name, value, attributes); |
| 2981 case CALLBACKS: | 2981 case CALLBACKS: { |
| 2982 return SetPropertyWithCallback(result->GetCallbackObject(), | 2982 Object* callback_object = result->GetCallbackObject(); |
| 2983 if (callback_object->IsAccessorPair() && |
| 2984 !AccessorPair::cast(callback_object)->ContainsAccessor()) { |
| 2985 return ConvertDescriptorToField(name, value, attributes); |
| 2986 } |
| 2987 return SetPropertyWithCallback(callback_object, |
| 2983 name, | 2988 name, |
| 2984 value, | 2989 value, |
| 2985 result->holder(), | 2990 result->holder(), |
| 2986 strict_mode); | 2991 strict_mode); |
| 2992 } |
| 2987 case INTERCEPTOR: | 2993 case INTERCEPTOR: |
| 2988 return SetPropertyWithInterceptor(name, value, attributes, strict_mode); | 2994 return SetPropertyWithInterceptor(name, value, attributes, strict_mode); |
| 2989 case CONSTANT_TRANSITION: { | 2995 case CONSTANT_TRANSITION: { |
| 2990 // If the same constant function is being added we can simply | 2996 // If the same constant function is being added we can simply |
| 2991 // transition to the target map. | 2997 // transition to the target map. |
| 2992 Map* target_map = result->GetTransitionMap(); | 2998 Map* target_map = result->GetTransitionMap(); |
| 2993 DescriptorArray* target_descriptors = target_map->instance_descriptors(); | 2999 DescriptorArray* target_descriptors = target_map->instance_descriptors(); |
| 2994 int number = target_descriptors->SearchWithCache(name); | 3000 int number = target_descriptors->SearchWithCache(name); |
| 2995 ASSERT(number != DescriptorArray::kNotFound); | 3001 ASSERT(number != DescriptorArray::kNotFound); |
| 2996 ASSERT(target_descriptors->GetType(number) == CONSTANT_FUNCTION); | 3002 ASSERT(target_descriptors->GetType(number) == CONSTANT_FUNCTION); |
| (...skipping 10198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 13195 set_year(Smi::FromInt(year), SKIP_WRITE_BARRIER); | 13201 set_year(Smi::FromInt(year), SKIP_WRITE_BARRIER); |
| 13196 set_month(Smi::FromInt(month), SKIP_WRITE_BARRIER); | 13202 set_month(Smi::FromInt(month), SKIP_WRITE_BARRIER); |
| 13197 set_day(Smi::FromInt(day), SKIP_WRITE_BARRIER); | 13203 set_day(Smi::FromInt(day), SKIP_WRITE_BARRIER); |
| 13198 set_weekday(Smi::FromInt(weekday), SKIP_WRITE_BARRIER); | 13204 set_weekday(Smi::FromInt(weekday), SKIP_WRITE_BARRIER); |
| 13199 set_hour(Smi::FromInt(hour), SKIP_WRITE_BARRIER); | 13205 set_hour(Smi::FromInt(hour), SKIP_WRITE_BARRIER); |
| 13200 set_min(Smi::FromInt(min), SKIP_WRITE_BARRIER); | 13206 set_min(Smi::FromInt(min), SKIP_WRITE_BARRIER); |
| 13201 set_sec(Smi::FromInt(sec), SKIP_WRITE_BARRIER); | 13207 set_sec(Smi::FromInt(sec), SKIP_WRITE_BARRIER); |
| 13202 } | 13208 } |
| 13203 | 13209 |
| 13204 } } // namespace v8::internal | 13210 } } // namespace v8::internal |
| OLD | NEW |