Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1231)

Unified Diff: src/stub-cache.cc

Issue 436273002: Remove special frontend for callbacks with slow-mode holders. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/stub-cache.h ('k') | src/x64/stub-cache-x64.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/stub-cache.cc
diff --git a/src/stub-cache.cc b/src/stub-cache.cc
index c40549d514bd6a39d9d068c2f08329df566809e0..d7a47e32023ce61435e8d20b208535d4cdb31c28 100644
--- a/src/stub-cache.cc
+++ b/src/stub-cache.cc
@@ -870,7 +870,7 @@ Handle<Code> NamedLoadHandlerCompiler::CompileLoadNonexistent(
Handle<Code> NamedLoadHandlerCompiler::CompileLoadCallback(
Handle<Name> name, Handle<ExecutableAccessorInfo> callback) {
- Register reg = CallbackFrontend(receiver(), name, callback);
+ Register reg = Frontend(receiver(), name);
GenerateLoadCallback(reg, callback);
return GetCode(kind(), Code::FAST, name);
}
@@ -879,8 +879,7 @@ Handle<Code> NamedLoadHandlerCompiler::CompileLoadCallback(
Handle<Code> NamedLoadHandlerCompiler::CompileLoadCallback(
Handle<Name> name, const CallOptimization& call_optimization) {
DCHECK(call_optimization.is_simple_api_call());
- Handle<JSFunction> callback = call_optimization.constant_function();
- CallbackFrontend(receiver(), name, callback);
+ Frontend(receiver(), name);
Handle<Map> receiver_map = IC::TypeToMap(*type(), isolate());
GenerateFastApiCall(
masm(), call_optimization, receiver_map,
@@ -912,26 +911,18 @@ Handle<Code> NamedLoadHandlerCompiler::CompileLoadInterceptor(
void NamedLoadHandlerCompiler::GenerateLoadPostInterceptor(
Register interceptor_reg, Handle<Name> name, LookupResult* lookup) {
Handle<JSObject> real_named_property_holder(lookup->holder());
+
+ set_type_for_object(holder());
+ set_holder(real_named_property_holder);
+ Register reg = Frontend(interceptor_reg, name);
+
if (lookup->IsField()) {
- FieldIndex field = lookup->GetFieldIndex();
- if (holder().is_identical_to(real_named_property_holder)) {
- GenerateLoadField(interceptor_reg, field, lookup->representation());
- } else {
- set_type_for_object(holder());
- set_holder(real_named_property_holder);
- Register reg = Frontend(interceptor_reg, name);
- GenerateLoadField(reg, field, lookup->representation());
- }
+ GenerateLoadField(reg, lookup->GetFieldIndex(), lookup->representation());
} else {
- // We found CALLBACKS property in prototype chain of interceptor's holder.
DCHECK(lookup->type() == CALLBACKS);
Handle<ExecutableAccessorInfo> callback(
ExecutableAccessorInfo::cast(lookup->GetCallbackObject()));
DCHECK(callback->getter() != NULL);
-
- set_type_for_object(holder());
- set_holder(real_named_property_holder);
- Register reg = CallbackFrontend(interceptor_reg, name, callback);
GenerateLoadCallback(reg, callback);
}
}
« no previous file with comments | « src/stub-cache.h ('k') | src/x64/stub-cache-x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698