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 21 matching lines...) Expand all Loading... |
32 #include "bootstrapper.h" | 32 #include "bootstrapper.h" |
33 #include "codegen.h" | 33 #include "codegen.h" |
34 #include "debug.h" | 34 #include "debug.h" |
35 #include "deoptimizer.h" | 35 #include "deoptimizer.h" |
36 #include "execution.h" | 36 #include "execution.h" |
37 #include "full-codegen.h" | 37 #include "full-codegen.h" |
38 #include "hydrogen.h" | 38 #include "hydrogen.h" |
39 #include "objects-inl.h" | 39 #include "objects-inl.h" |
40 #include "objects-visiting.h" | 40 #include "objects-visiting.h" |
41 #include "macro-assembler.h" | 41 #include "macro-assembler.h" |
| 42 #include "mark-compact.h" |
42 #include "safepoint-table.h" | 43 #include "safepoint-table.h" |
43 #include "scanner-base.h" | 44 #include "scanner-base.h" |
44 #include "scopeinfo.h" | 45 #include "scopeinfo.h" |
45 #include "string-stream.h" | 46 #include "string-stream.h" |
46 #include "utils.h" | 47 #include "utils.h" |
47 #include "vm-state-inl.h" | 48 #include "vm-state-inl.h" |
48 | 49 |
49 #ifdef ENABLE_DISASSEMBLER | 50 #ifdef ENABLE_DISASSEMBLER |
50 #include "disasm.h" | 51 #include "disasm.h" |
51 #include "disassembler.h" | 52 #include "disassembler.h" |
(...skipping 5313 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5365 // If the pair (value, details) is a map transition, | 5366 // If the pair (value, details) is a map transition, |
5366 // check if the target is live. If not, null the descriptor. | 5367 // check if the target is live. If not, null the descriptor. |
5367 // Also drop the back pointer for that map transition, so that this | 5368 // Also drop the back pointer for that map transition, so that this |
5368 // map is not reached again by following a back pointer from a | 5369 // map is not reached again by following a back pointer from a |
5369 // non-live object. | 5370 // non-live object. |
5370 PropertyDetails details(Smi::cast(contents->get(i + 1))); | 5371 PropertyDetails details(Smi::cast(contents->get(i + 1))); |
5371 if (details.type() == MAP_TRANSITION || | 5372 if (details.type() == MAP_TRANSITION || |
5372 details.type() == CONSTANT_TRANSITION) { | 5373 details.type() == CONSTANT_TRANSITION) { |
5373 Map* target = reinterpret_cast<Map*>(contents->get(i)); | 5374 Map* target = reinterpret_cast<Map*>(contents->get(i)); |
5374 ASSERT(target->IsHeapObject()); | 5375 ASSERT(target->IsHeapObject()); |
5375 if (!target->IsMarked()) { | 5376 if (!Marking::IsMarked(target)) { |
5376 ASSERT(target->IsMap()); | 5377 ASSERT(target->IsMap()); |
5377 contents->set_unchecked(i + 1, NullDescriptorDetails); | 5378 contents->set_unchecked(i + 1, NullDescriptorDetails); |
5378 contents->set_null_unchecked(i); | 5379 contents->set_null_unchecked(i); |
5379 ASSERT(target->prototype() == this || | 5380 ASSERT(target->prototype() == this || |
5380 target->prototype() == real_prototype); | 5381 target->prototype() == real_prototype); |
5381 // Getter prototype() is read-only, set_prototype() has side effects. | 5382 // Getter prototype() is read-only, set_prototype() has side effects. |
5382 *RawField(target, Map::kPrototypeOffset) = real_prototype; | 5383 *RawField(target, Map::kPrototypeOffset) = real_prototype; |
5383 } | 5384 } |
5384 } | 5385 } |
5385 } | 5386 } |
(...skipping 4480 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9866 if (break_point_objects()->IsUndefined()) return 0; | 9867 if (break_point_objects()->IsUndefined()) return 0; |
9867 // Single beak point. | 9868 // Single beak point. |
9868 if (!break_point_objects()->IsFixedArray()) return 1; | 9869 if (!break_point_objects()->IsFixedArray()) return 1; |
9869 // Multiple break points. | 9870 // Multiple break points. |
9870 return FixedArray::cast(break_point_objects())->length(); | 9871 return FixedArray::cast(break_point_objects())->length(); |
9871 } | 9872 } |
9872 #endif | 9873 #endif |
9873 | 9874 |
9874 | 9875 |
9875 } } // namespace v8::internal | 9876 } } // namespace v8::internal |
OLD | NEW |