| 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);
|
|
|