Index: src/objects-inl.h |
diff --git a/src/objects-inl.h b/src/objects-inl.h |
index a824b3b25479fe911bd9afb7ee528cc4ac40a564..9ad9d5fa7c620dd7c16e335994cbad876df557c7 100644 |
--- a/src/objects-inl.h |
+++ b/src/objects-inl.h |
@@ -847,6 +847,9 @@ TYPE_CHECKER(JSDate, JS_DATE_TYPE) |
TYPE_CHECKER(JSMessageObject, JS_MESSAGE_OBJECT_TYPE) |
+bool Object::IsAbstractCode() const { return IsBytecodeArray() || IsCode(); } |
+ |
+ |
bool Object::IsStringWrapper() const { |
return IsJSValue() && JSValue::cast(this)->value()->IsString(); |
} |
@@ -3178,6 +3181,7 @@ void SeededNumberDictionary::set_requires_slow_elements() { |
// Cast operations |
+CAST_ACCESSOR(AbstractCode) |
CAST_ACCESSOR(ArrayList) |
CAST_ACCESSOR(Bool16x8) |
CAST_ACCESSOR(Bool32x4) |
@@ -5278,6 +5282,12 @@ class Code::FindAndReplacePattern { |
}; |
+Code* AbstractCode::GetCode() { return Code::cast(this); } |
+BytecodeArray* AbstractCode::GetBytecodeArray() { |
+ return BytecodeArray::cast(this); |
+} |
+ |
+ |
Object* Map::prototype() const { |
return READ_FIELD(this, kPrototypeOffset); |
} |
@@ -5606,7 +5616,7 @@ ACCESSORS(DebugInfo, shared, SharedFunctionInfo, kSharedFunctionInfoIndex) |
ACCESSORS(DebugInfo, code, Code, kCodeIndex) |
ACCESSORS(DebugInfo, break_points, FixedArray, kBreakPointsStateIndex) |
-SMI_ACCESSORS(BreakPointInfo, code_position, kCodePositionIndex) |
+SMI_ACCESSORS(BreakPointInfo, code_offset, kCodeOffsetIndex) |
SMI_ACCESSORS(BreakPointInfo, source_position, kSourcePositionIndex) |
SMI_ACCESSORS(BreakPointInfo, statement_position, kStatementPositionIndex) |
ACCESSORS(BreakPointInfo, break_point_objects, Object, kBreakPointObjectsIndex) |
@@ -5861,6 +5871,12 @@ Code* SharedFunctionInfo::code() const { |
} |
+AbstractCode* SharedFunctionInfo::AbstractCode() { |
+ if (HasBytecodeArray()) return AbstractCode::cast(bytecode_array()); |
+ return AbstractCode::cast(code()); |
+} |
+ |
+ |
void SharedFunctionInfo::set_code(Code* value, WriteBarrierMode mode) { |
DCHECK(value->kind() != Code::OPTIMIZED_FUNCTION); |
WRITE_FIELD(this, kCodeOffset, value); |