Index: src/objects.h |
=================================================================== |
--- src/objects.h (revision 5298) |
+++ src/objects.h (working copy) |
@@ -2887,6 +2887,9 @@ |
// Convert a target address into a code object. |
static inline Code* GetCodeFromTargetAddress(Address address); |
+ // Convert an entry address into an object. |
+ static inline Object* GetObjectFromEntryAddress(Address location_of_address); |
+ |
// Returns the address of the first instruction. |
inline byte* instruction_start(); |
@@ -3707,6 +3710,10 @@ |
// Casting. |
static inline JSFunction* cast(Object* obj); |
+ // Iterates the objects, including code objects indirectly referenced |
+ // through pointers to the first instruction in the code object. |
+ void JSFunctionIterateBody(int object_size, ObjectVisitor* v); |
+ |
// Dispatched behavior. |
#ifdef DEBUG |
void JSFunctionPrint(); |
@@ -3720,9 +3727,9 @@ |
static Context* GlobalContextFromLiterals(FixedArray* literals); |
// Layout descriptors. |
- static const int kCodeOffset = JSObject::kHeaderSize; |
+ static const int kCodeEntryOffset = JSObject::kHeaderSize; |
static const int kPrototypeOrInitialMapOffset = |
- kCodeOffset + kPointerSize; |
+ kCodeEntryOffset + kPointerSize; |
static const int kSharedFunctionInfoOffset = |
kPrototypeOrInitialMapOffset + kPointerSize; |
static const int kContextOffset = kSharedFunctionInfoOffset + kPointerSize; |
@@ -5437,6 +5444,9 @@ |
// Visits a code target in the instruction stream. |
virtual void VisitCodeTarget(RelocInfo* rinfo); |
+ // Visits a code entry in a JS function. |
+ virtual void VisitCodeEntry(Address entry_address); |
+ |
// Visits a runtime entry in the instruction stream. |
virtual void VisitRuntimeEntry(RelocInfo* rinfo) {} |