Use SimpleLoadField for JSObjectFieldAccessors, rather than compiling a new stub.
authorverwaest@chromium.org <verwaest@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Wed, 20 Nov 2013 13:25:40 +0000 (13:25 +0000)
committerverwaest@chromium.org <verwaest@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Wed, 20 Nov 2013 13:25:40 +0000 (13:25 +0000)
R=dslomov@chromium.org

Review URL: https://chromiumcodereview.appspot.com/76403002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17922 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

src/ic.cc

index 9b30405..53c103a 100644 (file)
--- a/src/ic.cc
+++ b/src/ic.cc
@@ -1237,15 +1237,12 @@ Handle<Code> LoadIC::CompileHandler(LookupResult* lookup,
       return isolate()->builtins()->LoadIC_Normal();
     case CALLBACKS: {
       // Use simple field loads for some well-known callback properties.
-      int object_offset;
       if (object->IsJSObject()) {
         Handle<JSObject> receiver = Handle<JSObject>::cast(object);
         Handle<Map> map(receiver->map());
+        int object_offset;
         if (Accessors::IsJSObjectFieldAccessor(map, name, &object_offset)) {
-          PropertyIndex index =
-              PropertyIndex::NewHeaderIndex(object_offset / kPointerSize);
-          return compiler.CompileLoadField(
-              receiver, receiver, name, index, Representation::Tagged());
+          return SimpleFieldLoad(object_offset / kPointerSize);
         }
       }