| OLD | NEW |
| 1 // Copyright 2010 the V8 project authors. All rights reserved. | 1 // Copyright 2010 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 5419 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5430 // If the pair (value, details) is a map transition, | 5430 // If the pair (value, details) is a map transition, |
| 5431 // check if the target is live. If not, null the descriptor. | 5431 // check if the target is live. If not, null the descriptor. |
| 5432 // Also drop the back pointer for that map transition, so that this | 5432 // Also drop the back pointer for that map transition, so that this |
| 5433 // map is not reached again by following a back pointer from a | 5433 // map is not reached again by following a back pointer from a |
| 5434 // non-live object. | 5434 // non-live object. |
| 5435 PropertyDetails details(Smi::cast(contents->get(i + 1))); | 5435 PropertyDetails details(Smi::cast(contents->get(i + 1))); |
| 5436 if (details.type() == MAP_TRANSITION || | 5436 if (details.type() == MAP_TRANSITION || |
| 5437 details.type() == CONSTANT_TRANSITION) { | 5437 details.type() == CONSTANT_TRANSITION) { |
| 5438 Map* target = reinterpret_cast<Map*>(contents->get(i)); | 5438 Map* target = reinterpret_cast<Map*>(contents->get(i)); |
| 5439 ASSERT(target->IsHeapObject()); | 5439 ASSERT(target->IsHeapObject()); |
| 5440 if (!Marking::IsMarked(target)) { | 5440 MarkBit map_mark = Marking::MarkBitFrom(target); |
| 5441 if (!map_mark.Get()) { |
| 5441 ASSERT(target->IsMap()); | 5442 ASSERT(target->IsMap()); |
| 5442 contents->set_unchecked(i + 1, NullDescriptorDetails); | 5443 contents->set_unchecked(i + 1, NullDescriptorDetails); |
| 5443 contents->set_null_unchecked(i); | 5444 contents->set_null_unchecked(i); |
| 5444 ASSERT(target->prototype() == this || | 5445 ASSERT(target->prototype() == this || |
| 5445 target->prototype() == real_prototype); | 5446 target->prototype() == real_prototype); |
| 5446 // Getter prototype() is read-only, set_prototype() has side effects. | 5447 // Getter prototype() is read-only, set_prototype() has side effects. |
| 5447 *RawField(target, Map::kPrototypeOffset) = real_prototype; | 5448 *RawField(target, Map::kPrototypeOffset) = real_prototype; |
| 5448 } | 5449 } |
| 5449 } | 5450 } |
| 5450 } | 5451 } |
| (...skipping 4596 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10047 if (break_point_objects()->IsUndefined()) return 0; | 10048 if (break_point_objects()->IsUndefined()) return 0; |
| 10048 // Single beak point. | 10049 // Single beak point. |
| 10049 if (!break_point_objects()->IsFixedArray()) return 1; | 10050 if (!break_point_objects()->IsFixedArray()) return 1; |
| 10050 // Multiple break points. | 10051 // Multiple break points. |
| 10051 return FixedArray::cast(break_point_objects())->length(); | 10052 return FixedArray::cast(break_point_objects())->length(); |
| 10052 } | 10053 } |
| 10053 #endif | 10054 #endif |
| 10054 | 10055 |
| 10055 | 10056 |
| 10056 } } // namespace v8::internal | 10057 } } // namespace v8::internal |
| OLD | NEW |