| Index: src/code-stubs.h
|
| diff --git a/src/code-stubs.h b/src/code-stubs.h
|
| index f832f40dd450eb89a3cadba194df13c630ea800f..c40bc857cad53b1d03778940c7615c3cc67c2a38 100644
|
| --- a/src/code-stubs.h
|
| +++ b/src/code-stubs.h
|
| @@ -88,6 +88,7 @@ namespace internal {
|
| V(VectorRawKeyedLoad) \
|
| V(VectorRawLoad) \
|
| /* IC Handler stubs */ \
|
| + V(ArrayBufferViewLoadField) \
|
| V(LoadConstant) \
|
| V(LoadField) \
|
| V(KeyedLoadSloppyArguments) \
|
| @@ -973,6 +974,32 @@ class LoadFieldStub: public HandlerStub {
|
| };
|
|
|
|
|
| +class ArrayBufferViewLoadFieldStub : public HandlerStub {
|
| + public:
|
| + ArrayBufferViewLoadFieldStub(Isolate* isolate, FieldIndex index)
|
| + : HandlerStub(isolate) {
|
| + int property_index_key = index.GetFieldAccessStubKey();
|
| + set_sub_minor_key(
|
| + ArrayBufferViewLoadFieldByIndexBits::encode(property_index_key));
|
| + }
|
| +
|
| + FieldIndex index() const {
|
| + int property_index_key =
|
| + ArrayBufferViewLoadFieldByIndexBits::decode(sub_minor_key());
|
| + return FieldIndex::FromFieldAccessStubKey(property_index_key);
|
| + }
|
| +
|
| + protected:
|
| + Code::Kind kind() const override { return Code::LOAD_IC; }
|
| + Code::StubType GetStubType() const override { return Code::FAST; }
|
| +
|
| + private:
|
| + class ArrayBufferViewLoadFieldByIndexBits : public BitField<int, 0, 13> {};
|
| +
|
| + DEFINE_HANDLER_CODE_STUB(ArrayBufferViewLoadField, HandlerStub);
|
| +};
|
| +
|
| +
|
| class KeyedLoadSloppyArgumentsStub : public HandlerStub {
|
| public:
|
| explicit KeyedLoadSloppyArgumentsStub(Isolate* isolate)
|
|
|