| Index: src/code-stubs.cc
|
| diff --git a/src/code-stubs.cc b/src/code-stubs.cc
|
| index cd941decf24063bc1616cefb8eda6b0f349ca3a1..709b0e58e55042a92f464547c973857f94a70bc9 100644
|
| --- a/src/code-stubs.cc
|
| +++ b/src/code-stubs.cc
|
| @@ -2343,6 +2343,28 @@ void StoreInterceptorStub::GenerateAssembly(
|
| receiver, name, value);
|
| }
|
|
|
| +void LoadIndexedInterceptorStub::GenerateAssembly(
|
| + compiler::CodeStubAssembler* assembler) const {
|
| + typedef compiler::Node Node;
|
| + typedef compiler::CodeStubAssembler::Label Label;
|
| + Node* receiver = assembler->Parameter(0);
|
| + Node* key = assembler->Parameter(1);
|
| + Node* slot = assembler->Parameter(2);
|
| + Node* vector = assembler->Parameter(3);
|
| + Node* context = assembler->Parameter(4);
|
| +
|
| + Label if_keyispositivesmi(assembler), if_keyisinvalid(assembler);
|
| + assembler->Branch(assembler->WordIsPositiveSmi(key), &if_keyispositivesmi,
|
| + &if_keyisinvalid);
|
| + assembler->Bind(&if_keyispositivesmi);
|
| + assembler->TailCallRuntime(Runtime::kLoadElementWithInterceptor, context,
|
| + receiver, key);
|
| +
|
| + assembler->Bind(&if_keyisinvalid);
|
| + assembler->TailCallRuntime(Runtime::kKeyedLoadIC_Miss, context, receiver, key,
|
| + slot, vector);
|
| +}
|
| +
|
| template<class StateType>
|
| void HydrogenCodeStub::TraceTransition(StateType from, StateType to) {
|
| // Note: Although a no-op transition is semantically OK, it is hinting at a
|
|
|