| OLD | NEW | 
|---|
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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 10362 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 10373 } | 10373 } | 
| 10374 | 10374 | 
| 10375 | 10375 | 
| 10376 void Code::InvalidateRelocation() { | 10376 void Code::InvalidateRelocation() { | 
| 10377   set_relocation_info(GetHeap()->empty_byte_array()); | 10377   set_relocation_info(GetHeap()->empty_byte_array()); | 
| 10378 } | 10378 } | 
| 10379 | 10379 | 
| 10380 | 10380 | 
| 10381 void Code::InvalidateEmbeddedObjects() { | 10381 void Code::InvalidateEmbeddedObjects() { | 
| 10382   Object* undefined = GetHeap()->undefined_value(); | 10382   Object* undefined = GetHeap()->undefined_value(); | 
| 10383   int mode_mask = RelocInfo::ModeMask(RelocInfo::EMBEDDED_OBJECT); | 10383   Cell* undefined_cell = GetHeap()->undefined_cell(); | 
|  | 10384   int mode_mask = RelocInfo::ModeMask(RelocInfo::EMBEDDED_OBJECT) | | 
|  | 10385                   RelocInfo::ModeMask(RelocInfo::CELL); | 
| 10384   for (RelocIterator it(this, mode_mask); !it.done(); it.next()) { | 10386   for (RelocIterator it(this, mode_mask); !it.done(); it.next()) { | 
| 10385     RelocInfo::Mode mode = it.rinfo()->rmode(); | 10387     RelocInfo::Mode mode = it.rinfo()->rmode(); | 
| 10386     if (mode == RelocInfo::EMBEDDED_OBJECT) { | 10388     if (mode == RelocInfo::EMBEDDED_OBJECT) { | 
| 10387       it.rinfo()->set_target_object(undefined, SKIP_WRITE_BARRIER); | 10389       it.rinfo()->set_target_object(undefined, SKIP_WRITE_BARRIER); | 
|  | 10390     } else if (mode == RelocInfo::CELL) { | 
|  | 10391       it.rinfo()->set_target_cell(undefined_cell, SKIP_WRITE_BARRIER); | 
| 10388     } | 10392     } | 
| 10389   } | 10393   } | 
| 10390 } | 10394 } | 
| 10391 | 10395 | 
| 10392 | 10396 | 
| 10393 void Code::Relocate(intptr_t delta) { | 10397 void Code::Relocate(intptr_t delta) { | 
| 10394   for (RelocIterator it(this, RelocInfo::kApplyMask); !it.done(); it.next()) { | 10398   for (RelocIterator it(this, RelocInfo::kApplyMask); !it.done(); it.next()) { | 
| 10395     it.rinfo()->apply(delta); | 10399     it.rinfo()->apply(delta); | 
| 10396   } | 10400   } | 
| 10397   CPU::FlushICache(instruction_start(), instruction_size()); | 10401   CPU::FlushICache(instruction_start(), instruction_size()); | 
| (...skipping 914 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 11312 | 11316 | 
| 11313 bool Code::IsWeakEmbeddedObject(Kind kind, Object* object) { | 11317 bool Code::IsWeakEmbeddedObject(Kind kind, Object* object) { | 
| 11314   if (kind != Code::OPTIMIZED_FUNCTION) return false; | 11318   if (kind != Code::OPTIMIZED_FUNCTION) return false; | 
| 11315 | 11319 | 
| 11316   if (object->IsMap()) { | 11320   if (object->IsMap()) { | 
| 11317     return Map::cast(object)->CanTransition() && | 11321     return Map::cast(object)->CanTransition() && | 
| 11318            FLAG_collect_maps && | 11322            FLAG_collect_maps && | 
| 11319            FLAG_weak_embedded_maps_in_optimized_code; | 11323            FLAG_weak_embedded_maps_in_optimized_code; | 
| 11320   } | 11324   } | 
| 11321 | 11325 | 
| 11322   if (object->IsJSObject()) { | 11326   if (object->IsJSObject() || | 
|  | 11327       (object->IsCell() && Cell::cast(object)->value()->IsJSObject())) { | 
| 11323     return FLAG_weak_embedded_objects_in_optimized_code; | 11328     return FLAG_weak_embedded_objects_in_optimized_code; | 
| 11324   } | 11329   } | 
| 11325 | 11330 | 
| 11326   return false; | 11331   return false; | 
| 11327 } | 11332 } | 
| 11328 | 11333 | 
| 11329 | 11334 | 
| 11330 void JSObject::SetFastDoubleElementsCapacityAndLength(Handle<JSObject> object, | 11335 void JSObject::SetFastDoubleElementsCapacityAndLength(Handle<JSObject> object, | 
| 11331                                                       int capacity, | 11336                                                       int capacity, | 
| 11332                                                       int length) { | 11337                                                       int length) { | 
| (...skipping 5331 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 16664 #define ERROR_MESSAGES_TEXTS(C, T) T, | 16669 #define ERROR_MESSAGES_TEXTS(C, T) T, | 
| 16665   static const char* error_messages_[] = { | 16670   static const char* error_messages_[] = { | 
| 16666       ERROR_MESSAGES_LIST(ERROR_MESSAGES_TEXTS) | 16671       ERROR_MESSAGES_LIST(ERROR_MESSAGES_TEXTS) | 
| 16667   }; | 16672   }; | 
| 16668 #undef ERROR_MESSAGES_TEXTS | 16673 #undef ERROR_MESSAGES_TEXTS | 
| 16669   return error_messages_[reason]; | 16674   return error_messages_[reason]; | 
| 16670 } | 16675 } | 
| 16671 | 16676 | 
| 16672 | 16677 | 
| 16673 } }  // namespace v8::internal | 16678 } }  // namespace v8::internal | 
| OLD | NEW | 
|---|