Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(263)

Side by Side Diff: src/objects.h

Issue 77035: Add ENABLE_DEBUGGER_SUPPORT macro.... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 11 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2006-2008 the V8 project authors. All rights reserved. 1 // Copyright 2006-2008 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 371 matching lines...) Expand 10 before | Expand all | Expand 10 after
382 382
383 // A struct is a simple object a set of object-valued fields. Including an 383 // A struct is a simple object a set of object-valued fields. Including an
384 // object type in this causes the compiler to generate most of the boilerplate 384 // object type in this causes the compiler to generate most of the boilerplate
385 // code for the class including allocation and garbage collection routines, 385 // code for the class including allocation and garbage collection routines,
386 // casts and predicates. All you need to define is the class, methods and 386 // casts and predicates. All you need to define is the class, methods and
387 // object verification routines. Easy, no? 387 // object verification routines. Easy, no?
388 // 388 //
389 // Note that for subtle reasons related to the ordering or numerical values of 389 // Note that for subtle reasons related to the ordering or numerical values of
390 // type tags, elements in this list have to be added to the INSTANCE_TYPE_LIST 390 // type tags, elements in this list have to be added to the INSTANCE_TYPE_LIST
391 // manually. 391 // manually.
392 #define STRUCT_LIST(V) \ 392 #define STRUCT_LIST_ALL(V) \
393 V(ACCESSOR_INFO, AccessorInfo, accessor_info) \ 393 V(ACCESSOR_INFO, AccessorInfo, accessor_info) \
394 V(ACCESS_CHECK_INFO, AccessCheckInfo, access_check_info) \ 394 V(ACCESS_CHECK_INFO, AccessCheckInfo, access_check_info) \
395 V(INTERCEPTOR_INFO, InterceptorInfo, interceptor_info) \ 395 V(INTERCEPTOR_INFO, InterceptorInfo, interceptor_info) \
396 V(CALL_HANDLER_INFO, CallHandlerInfo, call_handler_info) \ 396 V(CALL_HANDLER_INFO, CallHandlerInfo, call_handler_info) \
397 V(FUNCTION_TEMPLATE_INFO, FunctionTemplateInfo, function_template_info) \ 397 V(FUNCTION_TEMPLATE_INFO, FunctionTemplateInfo, function_template_info) \
398 V(OBJECT_TEMPLATE_INFO, ObjectTemplateInfo, object_template_info) \ 398 V(OBJECT_TEMPLATE_INFO, ObjectTemplateInfo, object_template_info) \
399 V(SIGNATURE_INFO, SignatureInfo, signature_info) \ 399 V(SIGNATURE_INFO, SignatureInfo, signature_info) \
400 V(TYPE_SWITCH_INFO, TypeSwitchInfo, type_switch_info) \ 400 V(TYPE_SWITCH_INFO, TypeSwitchInfo, type_switch_info) \
401 V(DEBUG_INFO, DebugInfo, debug_info) \
402 V(BREAK_POINT_INFO, BreakPointInfo, break_point_info) \
403 V(SCRIPT, Script, script) 401 V(SCRIPT, Script, script)
404 402
403 #ifdef ENABLE_DEBUGGER_SUPPORT
404 #define STRUCT_LIST_DEBUGGER(V) \
405 V(DEBUG_INFO, DebugInfo, debug_info) \
406 V(BREAK_POINT_INFO, BreakPointInfo, break_point_info)
407 #else
408 #define STRUCT_LIST_DEBUGGER(V)
409 #endif
410
411 #define STRUCT_LIST(V) \
412 STRUCT_LIST_ALL(V) \
413 STRUCT_LIST_DEBUGGER(V)
405 414
406 // We use the full 8 bits of the instance_type field to encode heap object 415 // We use the full 8 bits of the instance_type field to encode heap object
407 // instance types. The high-order bit (bit 7) is set if the object is not a 416 // instance types. The high-order bit (bit 7) is set if the object is not a
408 // string, and cleared if it is a string. 417 // string, and cleared if it is a string.
409 const uint32_t kIsNotStringMask = 0x80; 418 const uint32_t kIsNotStringMask = 0x80;
410 const uint32_t kStringTag = 0x0; 419 const uint32_t kStringTag = 0x0;
411 const uint32_t kNotStringTag = 0x80; 420 const uint32_t kNotStringTag = 0x80;
412 421
413 // If bit 7 is clear, bit 5 indicates that the string is a symbol (if set) or 422 // If bit 7 is clear, bit 5 indicates that the string is a symbol (if set) or
414 // not (if cleared). 423 // not (if cleared).
(...skipping 3729 matching lines...) Expand 10 before | Expand all | Expand 10 after
4144 #ifdef DEBUG 4153 #ifdef DEBUG
4145 void TypeSwitchInfoPrint(); 4154 void TypeSwitchInfoPrint();
4146 void TypeSwitchInfoVerify(); 4155 void TypeSwitchInfoVerify();
4147 #endif 4156 #endif
4148 4157
4149 static const int kTypesOffset = Struct::kHeaderSize; 4158 static const int kTypesOffset = Struct::kHeaderSize;
4150 static const int kSize = kTypesOffset + kPointerSize; 4159 static const int kSize = kTypesOffset + kPointerSize;
4151 }; 4160 };
4152 4161
4153 4162
4163 #ifdef ENABLE_DEBUGGER_SUPPORT
4154 // The DebugInfo class holds additional information for a function being 4164 // The DebugInfo class holds additional information for a function being
4155 // debugged. 4165 // debugged.
4156 class DebugInfo: public Struct { 4166 class DebugInfo: public Struct {
4157 public: 4167 public:
4158 // The shared function info for the source being debugged. 4168 // The shared function info for the source being debugged.
4159 DECL_ACCESSORS(shared, SharedFunctionInfo) 4169 DECL_ACCESSORS(shared, SharedFunctionInfo)
4160 // Code object for the original code. 4170 // Code object for the original code.
4161 DECL_ACCESSORS(original_code, Code) 4171 DECL_ACCESSORS(original_code, Code)
4162 // Code object for the patched code. This code object is the code object 4172 // Code object for the patched code. This code object is the code object
4163 // currently active for the function. 4173 // currently active for the function.
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
4249 static const int kSourcePositionIndex = kCodePositionIndex + kPointerSize; 4259 static const int kSourcePositionIndex = kCodePositionIndex + kPointerSize;
4250 static const int kStatementPositionIndex = 4260 static const int kStatementPositionIndex =
4251 kSourcePositionIndex + kPointerSize; 4261 kSourcePositionIndex + kPointerSize;
4252 static const int kBreakPointObjectsIndex = 4262 static const int kBreakPointObjectsIndex =
4253 kStatementPositionIndex + kPointerSize; 4263 kStatementPositionIndex + kPointerSize;
4254 static const int kSize = kBreakPointObjectsIndex + kPointerSize; 4264 static const int kSize = kBreakPointObjectsIndex + kPointerSize;
4255 4265
4256 private: 4266 private:
4257 DISALLOW_IMPLICIT_CONSTRUCTORS(BreakPointInfo); 4267 DISALLOW_IMPLICIT_CONSTRUCTORS(BreakPointInfo);
4258 }; 4268 };
4269 #endif // ENABLE_DEBUGGER_SUPPORT
4259 4270
4260 4271
4261 #undef DECL_BOOLEAN_ACCESSORS 4272 #undef DECL_BOOLEAN_ACCESSORS
4262 #undef DECL_ACCESSORS 4273 #undef DECL_ACCESSORS
4263 4274
4264 4275
4265 // Abstract base class for visiting, and optionally modifying, the 4276 // Abstract base class for visiting, and optionally modifying, the
4266 // pointers contained in Objects. Used in GC and serialization/deserialization. 4277 // pointers contained in Objects. Used in GC and serialization/deserialization.
4267 class ObjectVisitor BASE_EMBEDDED { 4278 class ObjectVisitor BASE_EMBEDDED {
4268 public: 4279 public:
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
4332 } else { 4343 } else {
4333 value &= ~(1 << bit_position); 4344 value &= ~(1 << bit_position);
4334 } 4345 }
4335 return value; 4346 return value;
4336 } 4347 }
4337 }; 4348 };
4338 4349
4339 } } // namespace v8::internal 4350 } } // namespace v8::internal
4340 4351
4341 #endif // V8_OBJECTS_H_ 4352 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/macro-assembler-ia32.cc ('k') | src/objects.cc » ('j') | src/serialize.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698