OLD | NEW |
1 // Copyright 2010 the V8 project authors. All rights reserved. | 1 // Copyright 2011 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 |
11 // with the distribution. | 11 // with the distribution. |
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
178 class RelocInfo; | 178 class RelocInfo; |
179 class Deserializer; | 179 class Deserializer; |
180 class MessageLocation; | 180 class MessageLocation; |
181 class ObjectGroup; | 181 class ObjectGroup; |
182 class TickSample; | 182 class TickSample; |
183 class VirtualMemory; | 183 class VirtualMemory; |
184 class Mutex; | 184 class Mutex; |
185 | 185 |
186 typedef bool (*WeakSlotCallback)(Object** pointer); | 186 typedef bool (*WeakSlotCallback)(Object** pointer); |
187 | 187 |
| 188 typedef bool (*WeakSlotCallbackWithHeap)(Heap* heap, Object** pointer); |
| 189 |
188 // ----------------------------------------------------------------------------- | 190 // ----------------------------------------------------------------------------- |
189 // Miscellaneous | 191 // Miscellaneous |
190 | 192 |
191 // NOTE: SpaceIterator depends on AllocationSpace enumeration values being | 193 // NOTE: SpaceIterator depends on AllocationSpace enumeration values being |
192 // consecutive. | 194 // consecutive. |
193 enum AllocationSpace { | 195 enum AllocationSpace { |
194 NEW_SPACE, // Semispaces collected with copying collector. | 196 NEW_SPACE, // Semispaces collected with copying collector. |
195 OLD_POINTER_SPACE, // May contain pointers to new space. | 197 OLD_POINTER_SPACE, // May contain pointers to new space. |
196 OLD_DATA_SPACE, // Must not have pointers to new space. | 198 OLD_DATA_SPACE, // Must not have pointers to new space. |
197 CODE_SPACE, // No pointers to new space, marked executable. | 199 CODE_SPACE, // No pointers to new space, marked executable. |
(...skipping 13 matching lines...) Expand all Loading... |
211 // A flag that indicates whether objects should be pretenured when | 213 // A flag that indicates whether objects should be pretenured when |
212 // allocated (allocated directly into the old generation) or not | 214 // allocated (allocated directly into the old generation) or not |
213 // (allocated in the young generation if the object size and type | 215 // (allocated in the young generation if the object size and type |
214 // allows). | 216 // allows). |
215 enum PretenureFlag { NOT_TENURED, TENURED }; | 217 enum PretenureFlag { NOT_TENURED, TENURED }; |
216 | 218 |
217 enum GarbageCollector { SCAVENGER, MARK_COMPACTOR }; | 219 enum GarbageCollector { SCAVENGER, MARK_COMPACTOR }; |
218 | 220 |
219 enum Executability { NOT_EXECUTABLE, EXECUTABLE }; | 221 enum Executability { NOT_EXECUTABLE, EXECUTABLE }; |
220 | 222 |
221 enum VisitMode { VISIT_ALL, VISIT_ALL_IN_SCAVENGE, VISIT_ONLY_STRONG }; | 223 enum VisitMode { |
| 224 VISIT_ALL, |
| 225 VISIT_ALL_IN_SCAVENGE, |
| 226 VISIT_ALL_IN_SWEEP_NEWSPACE, |
| 227 VISIT_ONLY_STRONG |
| 228 }; |
222 | 229 |
223 // Flag indicating whether code is built into the VM (one of the natives files). | 230 // Flag indicating whether code is built into the VM (one of the natives files). |
224 enum NativesFlag { NOT_NATIVES_CODE, NATIVES_CODE }; | 231 enum NativesFlag { NOT_NATIVES_CODE, NATIVES_CODE }; |
225 | 232 |
226 | 233 |
227 // A CodeDesc describes a buffer holding instructions and relocation | 234 // A CodeDesc describes a buffer holding instructions and relocation |
228 // information. The instructions start at the beginning of the buffer | 235 // information. The instructions start at the beginning of the buffer |
229 // and grow forward, the relocation information starts at the end of | 236 // and grow forward, the relocation information starts at the end of |
230 // the buffer and grows backward. | 237 // the buffer and grows backward. |
231 // | 238 // |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
315 | 322 |
316 // Type of properties. | 323 // Type of properties. |
317 // Order of properties is significant. | 324 // Order of properties is significant. |
318 // Must fit in the BitField PropertyDetails::TypeField. | 325 // Must fit in the BitField PropertyDetails::TypeField. |
319 // A copy of this is in mirror-debugger.js. | 326 // A copy of this is in mirror-debugger.js. |
320 enum PropertyType { | 327 enum PropertyType { |
321 NORMAL = 0, // only in slow mode | 328 NORMAL = 0, // only in slow mode |
322 FIELD = 1, // only in fast mode | 329 FIELD = 1, // only in fast mode |
323 CONSTANT_FUNCTION = 2, // only in fast mode | 330 CONSTANT_FUNCTION = 2, // only in fast mode |
324 CALLBACKS = 3, | 331 CALLBACKS = 3, |
325 INTERCEPTOR = 4, // only in lookup results, not in descriptors. | 332 HANDLER = 4, // only in lookup results, not in descriptors |
326 MAP_TRANSITION = 5, // only in fast mode | 333 INTERCEPTOR = 5, // only in lookup results, not in descriptors |
327 EXTERNAL_ARRAY_TRANSITION = 6, | 334 MAP_TRANSITION = 6, // only in fast mode |
328 CONSTANT_TRANSITION = 7, // only in fast mode | 335 EXTERNAL_ARRAY_TRANSITION = 7, |
329 NULL_DESCRIPTOR = 8, // only in fast mode | 336 CONSTANT_TRANSITION = 8, // only in fast mode |
| 337 NULL_DESCRIPTOR = 9, // only in fast mode |
330 // All properties before MAP_TRANSITION are real. | 338 // All properties before MAP_TRANSITION are real. |
331 FIRST_PHANTOM_PROPERTY_TYPE = MAP_TRANSITION, | 339 FIRST_PHANTOM_PROPERTY_TYPE = MAP_TRANSITION, |
332 // There are no IC stubs for NULL_DESCRIPTORS. Therefore, | 340 // There are no IC stubs for NULL_DESCRIPTORS. Therefore, |
333 // NULL_DESCRIPTOR can be used as the type flag for IC stubs for | 341 // NULL_DESCRIPTOR can be used as the type flag for IC stubs for |
334 // nonexistent properties. | 342 // nonexistent properties. |
335 NONEXISTENT = NULL_DESCRIPTOR | 343 NONEXISTENT = NULL_DESCRIPTOR |
336 }; | 344 }; |
337 | 345 |
338 | 346 |
339 // Whether to remove map transitions and constant transitions from a | 347 // Whether to remove map transitions and constant transitions from a |
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
474 // The Strict Mode (ECMA-262 5th edition, 4.2.2). | 482 // The Strict Mode (ECMA-262 5th edition, 4.2.2). |
475 enum StrictModeFlag { | 483 enum StrictModeFlag { |
476 kNonStrictMode, | 484 kNonStrictMode, |
477 kStrictMode, | 485 kStrictMode, |
478 // This value is never used, but is needed to prevent GCC 4.5 from failing | 486 // This value is never used, but is needed to prevent GCC 4.5 from failing |
479 // to compile when we assert that a flag is either kNonStrictMode or | 487 // to compile when we assert that a flag is either kNonStrictMode or |
480 // kStrictMode. | 488 // kStrictMode. |
481 kInvalidStrictFlag | 489 kInvalidStrictFlag |
482 }; | 490 }; |
483 | 491 |
| 492 |
| 493 // Used to specify if a macro instruction must perform a smi check on tagged |
| 494 // values. |
| 495 enum SmiCheckType { |
| 496 DONT_DO_SMI_CHECK = 0, |
| 497 DO_SMI_CHECK |
| 498 }; |
| 499 |
484 } } // namespace v8::internal | 500 } } // namespace v8::internal |
485 | 501 |
486 #endif // V8_V8GLOBALS_H_ | 502 #endif // V8_V8GLOBALS_H_ |
OLD | NEW |