| Index: src/stub-cache.h
|
| diff --git a/src/stub-cache.h b/src/stub-cache.h
|
| index 740a7c8e7f1bbf1a7781748045ac5579eb60e339..a99f5bc8fe2fc242b22200b8619bc20812305dc7 100644
|
| --- a/src/stub-cache.h
|
| +++ b/src/stub-cache.h
|
| @@ -401,7 +401,6 @@ class StubCache {
|
|
|
|
|
| // Support functions for IC stubs for callbacks.
|
| -DECLARE_RUNTIME_FUNCTION(MaybeObject*, LoadCallbackProperty);
|
| DECLARE_RUNTIME_FUNCTION(MaybeObject*, StoreCallbackProperty);
|
|
|
|
|
| @@ -535,58 +534,6 @@ class StubCompiler BASE_EMBEDDED {
|
| MacroAssembler* masm() { return &masm_; }
|
| void set_failure(Failure* failure) { failure_ = failure; }
|
|
|
| - void GenerateLoadField(Handle<JSObject> object,
|
| - Handle<JSObject> holder,
|
| - Register receiver,
|
| - Register scratch1,
|
| - Register scratch2,
|
| - Register scratch3,
|
| - PropertyIndex index,
|
| - Handle<String> name,
|
| - Label* miss);
|
| -
|
| - void GenerateLoadCallback(Handle<JSObject> object,
|
| - Handle<JSObject> holder,
|
| - Register receiver,
|
| - Register name_reg,
|
| - Register scratch1,
|
| - Register scratch2,
|
| - Register scratch3,
|
| - Register scratch4,
|
| - Handle<AccessorInfo> callback,
|
| - Handle<String> name,
|
| - Label* miss);
|
| -
|
| - void GenerateDictionaryLoadCallback(Register receiver,
|
| - Register name_reg,
|
| - Register scratch1,
|
| - Register scratch2,
|
| - Register scratch3,
|
| - Handle<AccessorInfo> callback,
|
| - Handle<String> name,
|
| - Label* miss);
|
| -
|
| - void GenerateLoadConstant(Handle<JSObject> object,
|
| - Handle<JSObject> holder,
|
| - Register receiver,
|
| - Register scratch1,
|
| - Register scratch2,
|
| - Register scratch3,
|
| - Handle<JSFunction> value,
|
| - Handle<String> name,
|
| - Label* miss);
|
| -
|
| - void GenerateLoadInterceptor(Handle<JSObject> object,
|
| - Handle<JSObject> holder,
|
| - LookupResult* lookup,
|
| - Register receiver,
|
| - Register name_reg,
|
| - Register scratch1,
|
| - Register scratch2,
|
| - Register scratch3,
|
| - Handle<String> name,
|
| - Label* miss);
|
| -
|
| static void LookupPostInterceptor(Handle<JSObject> holder,
|
| Handle<String> name,
|
| LookupResult* lookup);
|
| @@ -602,6 +549,9 @@ class StubCompiler BASE_EMBEDDED {
|
| };
|
|
|
|
|
| +enum FrontendCheckType { PERFORM_INITIAL_CHECKS, SKIP_INITIAL_CHECKS };
|
| +
|
| +
|
| class BaseLoadStubCompiler: public StubCompiler {
|
| public:
|
| BaseLoadStubCompiler(Isolate* isolate, Register* registers)
|
| @@ -628,6 +578,49 @@ class BaseLoadStubCompiler: public StubCompiler {
|
| Handle<String> name);
|
|
|
| protected:
|
| + Register HandlerFrontendHeader(Handle<JSObject> object,
|
| + Register object_reg,
|
| + Handle<JSObject> holder,
|
| + Handle<String> name,
|
| + Label* success,
|
| + FrontendCheckType check);
|
| + void HandlerFrontendFooter(Label* success, Label* miss);
|
| +
|
| + Register HandlerFrontend(Handle<JSObject> object,
|
| + Register object_reg,
|
| + Handle<JSObject> holder,
|
| + Handle<String> name,
|
| + Label* success,
|
| + FrontendCheckType check);
|
| + Register CallbackHandlerFrontend(Handle<JSObject> object,
|
| + Register object_reg,
|
| + Handle<JSObject> holder,
|
| + Handle<String> name,
|
| + Label* success,
|
| + FrontendCheckType check,
|
| + Handle<AccessorInfo> callback);
|
| + void NonexistentHandlerFrontend(Handle<JSObject> object,
|
| + Handle<JSObject> last,
|
| + Handle<String> name,
|
| + Label* success,
|
| + Handle<GlobalObject> global);
|
| +
|
| + void GenerateLoadField(Register reg,
|
| + Handle<JSObject> holder,
|
| + PropertyIndex index);
|
| + void GenerateLoadConstant(Handle<JSFunction> value);
|
| + void GenerateLoadCallback(Register reg, Handle<AccessorInfo> callback);
|
| + void GenerateLoadInterceptor(Register holder_reg,
|
| + Handle<JSObject> object,
|
| + Handle<JSObject> holder,
|
| + LookupResult* lookup,
|
| + Handle<String> name);
|
| + void GenerateLoadPostInterceptor(Register reg,
|
| + Handle<JSObject> interceptor_holder,
|
| + Handle<String> name,
|
| + LookupResult* lookup);
|
| +
|
| +
|
| Register receiver() { return registers_[0]; }
|
| Register name() { return registers_[1]; }
|
| Register scratch1() { return registers_[2]; }
|
|
|