Index: src/objects-inl.h |
diff --git a/src/objects-inl.h b/src/objects-inl.h |
index c1a8e223b60c2dd747ef6a35b7f2fa862e1839b6..54d2443b2aa4d88659abc434e992c27f7fc9e838 100644 |
--- a/src/objects-inl.h |
+++ b/src/objects-inl.h |
@@ -4011,6 +4011,7 @@ ACCESSORS(BytecodeArray, constant_pool, FixedArray, kConstantPoolOffset) |
ACCESSORS(BytecodeArray, handler_table, FixedArray, kHandlerTableOffset) |
ACCESSORS(BytecodeArray, source_position_table, ByteArray, |
kSourcePositionTableOffset) |
+ACCESSORS(BytecodeArray, stack_frame_cache, Object, kStackFrameCacheOffset) |
Address BytecodeArray::GetFirstBytecodeAddress() { |
return reinterpret_cast<Address>(this) - kHeapObjectTag + kHeaderSize; |
@@ -5237,6 +5238,22 @@ void AbstractCode::set_source_position_table(ByteArray* source_position_table) { |
} |
} |
+Object* AbstractCode::stack_frame_cache() { |
+ if (IsCode()) { |
+ return GetCode()->stack_frame_cache(); |
+ } else { |
+ return GetBytecodeArray()->stack_frame_cache(); |
+ } |
+} |
+ |
+void AbstractCode::set_stack_frame_cache(Object* stack_frame_cache) { |
+ if (IsCode()) { |
+ GetCode()->set_stack_frame_cache(stack_frame_cache); |
+ } else { |
+ GetBytecodeArray()->set_stack_frame_cache(stack_frame_cache); |
+ } |
+} |
+ |
int AbstractCode::SizeIncludingMetadata() { |
if (IsCode()) { |
return GetCode()->SizeIncludingMetadata(); |
@@ -5244,6 +5261,7 @@ int AbstractCode::SizeIncludingMetadata() { |
return GetBytecodeArray()->SizeIncludingMetadata(); |
} |
} |
+ |
int AbstractCode::ExecutableSize() { |
if (IsCode()) { |
return GetCode()->ExecutableSize(); |
@@ -6628,6 +6646,7 @@ SMI_ACCESSORS(JSMessageObject, error_level, kErrorLevelOffset) |
INT_ACCESSORS(Code, instruction_size, kInstructionSizeOffset) |
INT_ACCESSORS(Code, prologue_offset, kPrologueOffset) |
INT_ACCESSORS(Code, constant_pool_offset, kConstantPoolOffset) |
+ACCESSORS(Code, stack_frame_cache, Object, kStackFrameCacheOffset) |
#define CODE_ACCESSORS(name, type, offset) \ |
ACCESSORS_CHECKED2(Code, name, type, offset, true, \ |
!GetHeap()->InNewSpace(value)) |
@@ -6645,6 +6664,7 @@ void Code::WipeOutHeader() { |
WRITE_FIELD(this, kHandlerTableOffset, NULL); |
WRITE_FIELD(this, kDeoptimizationDataOffset, NULL); |
WRITE_FIELD(this, kSourcePositionTableOffset, NULL); |
+ WRITE_FIELD(this, kStackFrameCacheOffset, NULL); |
// Do not wipe out major/minor keys on a code stub or IC |
if (!READ_FIELD(this, kTypeFeedbackInfoOffset)->IsSmi()) { |
WRITE_FIELD(this, kTypeFeedbackInfoOffset, NULL); |