| Index: src/objects-inl.h
|
| diff --git a/src/objects-inl.h b/src/objects-inl.h
|
| index a4ca8c34e29eeec8737c7f0b3025952c319b54cd..2bd8b533ace8ac88d0801d2559a5f6ba33b420c1 100644
|
| --- a/src/objects-inl.h
|
| +++ b/src/objects-inl.h
|
| @@ -648,6 +648,7 @@ bool Object::IsNumber() const {
|
|
|
|
|
| TYPE_CHECKER(ByteArray, BYTE_ARRAY_TYPE)
|
| +TYPE_CHECKER(BytecodeArray, BYTECODE_ARRAY_TYPE)
|
| TYPE_CHECKER(FreeSpace, FREE_SPACE_TYPE)
|
|
|
|
|
| @@ -2924,6 +2925,7 @@ void SeededNumberDictionary::set_requires_slow_elements() {
|
| CAST_ACCESSOR(AccessorInfo)
|
| CAST_ACCESSOR(ArrayList)
|
| CAST_ACCESSOR(ByteArray)
|
| +CAST_ACCESSOR(BytecodeArray)
|
| CAST_ACCESSOR(Cell)
|
| CAST_ACCESSOR(Code)
|
| CAST_ACCESSOR(CodeCacheHashTable)
|
| @@ -3625,6 +3627,27 @@ Address ByteArray::GetDataStartAddress() {
|
| }
|
|
|
|
|
| +byte BytecodeArray::get(int index) {
|
| + DCHECK(index >= 0 && index < this->length());
|
| + return READ_BYTE_FIELD(this, kHeaderSize + index * kCharSize);
|
| +}
|
| +
|
| +
|
| +void BytecodeArray::set(int index, byte value) {
|
| + DCHECK(index >= 0 && index < this->length());
|
| + WRITE_BYTE_FIELD(this, kHeaderSize + index * kCharSize, value);
|
| +}
|
| +
|
| +
|
| +INT_ACCESSORS(BytecodeArray, frame_size, kFrameSizeOffset)
|
| +INT_ACCESSORS(BytecodeArray, number_of_locals, kNumberOfLocalsOffset)
|
| +
|
| +
|
| +Address BytecodeArray::GetFirstBytecodeAddress() {
|
| + return reinterpret_cast<Address>(this) - kHeapObjectTag + kHeaderSize;
|
| +}
|
| +
|
| +
|
| uint8_t* ExternalUint8ClampedArray::external_uint8_clamped_pointer() {
|
| return reinterpret_cast<uint8_t*>(external_pointer());
|
| }
|
| @@ -4113,6 +4136,9 @@ int HeapObject::SizeFromMap(Map* map) {
|
| if (instance_type == BYTE_ARRAY_TYPE) {
|
| return reinterpret_cast<ByteArray*>(this)->ByteArraySize();
|
| }
|
| + if (instance_type == BYTECODE_ARRAY_TYPE) {
|
| + return reinterpret_cast<BytecodeArray*>(this)->BytecodeArraySize();
|
| + }
|
| if (instance_type == FREE_SPACE_TYPE) {
|
| return reinterpret_cast<FreeSpace*>(this)->nobarrier_size();
|
| }
|
| @@ -5515,6 +5541,17 @@ BuiltinFunctionId SharedFunctionInfo::builtin_function_id() {
|
| }
|
|
|
|
|
| +bool SharedFunctionInfo::HasBytecodeArray() {
|
| + return function_data()->IsBytecodeArray();
|
| +}
|
| +
|
| +
|
| +BytecodeArray* SharedFunctionInfo::bytecode_array() {
|
| + DCHECK(HasBytecodeArray());
|
| + return BytecodeArray::cast(function_data());
|
| +}
|
| +
|
| +
|
| int SharedFunctionInfo::ic_age() {
|
| return ICAgeBits::decode(counters());
|
| }
|
|
|