| Index: src/ic/handler-compiler.cc
|
| diff --git a/src/ic/handler-compiler.cc b/src/ic/handler-compiler.cc
|
| index 2eff81f6b5fcf4fc594aed5c750e2b5cc8f87ceb..5717afda17d076e3ff03e2256c96502637a79665 100644
|
| --- a/src/ic/handler-compiler.cc
|
| +++ b/src/ic/handler-compiler.cc
|
| @@ -358,6 +358,18 @@ Handle<Code> NamedLoadHandlerCompiler::CompileLoadInterceptor(
|
| return GetCode(kind(), it->name());
|
| }
|
|
|
| +void NamedLoadHandlerCompiler::GenerateLoadCallback(
|
| + Register reg, Handle<AccessorInfo> callback) {
|
| + DCHECK(receiver().is(ApiGetterDescriptor::ReceiverRegister()));
|
| + __ Move(ApiGetterDescriptor::HolderRegister(), reg);
|
| + // The callback is alive if this instruction is executed,
|
| + // so the weak cell is not cleared and points to data.
|
| + Handle<WeakCell> cell = isolate()->factory()->NewWeakCell(callback);
|
| + __ GetWeakValue(ApiGetterDescriptor::CallbackRegister(), cell);
|
| +
|
| + CallApiGetterStub stub(isolate());
|
| + __ TailCallStub(&stub);
|
| +}
|
|
|
| void NamedLoadHandlerCompiler::GenerateLoadPostInterceptor(
|
| LookupIterator* it, Register interceptor_reg) {
|
|
|