Revision: 20392
Author:   [email protected]
Date:     Tue Apr  1 11:21:20 2014 UTC
Log:      always lookup api holder from receiver

[email protected]

BUG=

Review URL: https://codereview.chromium.org/219723002
http://code.google.com/p/v8/source/detail?r=20392

Modified:
 /branches/bleeding_edge/src/hydrogen.cc

=======================================
--- /branches/bleeding_edge/src/hydrogen.cc     Fri Mar 28 15:25:24 2014 UTC
+++ /branches/bleeding_edge/src/hydrogen.cc     Tue Apr  1 11:21:20 2014 UTC
@@ -5488,16 +5488,11 @@
     Handle<JSFunction> accessor = handle(JSFunction::cast(raw_accessor));
     if (accessor->shared()->IsApiFunction()) {
       CallOptimization call_optimization(accessor);
-      if (!call_optimization.is_simple_api_call()) return false;
-      CallOptimization::HolderLookup holder_lookup;
-      api_holder_ = call_optimization.LookupHolderOfExpectedType(
-          map, &holder_lookup);
-      switch (holder_lookup) {
-        case CallOptimization::kHolderNotFound:
-          return false;
-        case CallOptimization::kHolderIsReceiver:
-        case CallOptimization::kHolderFound:
-          break;
+      if (call_optimization.is_simple_api_call()) {
+        CallOptimization::HolderLookup holder_lookup;
+        Handle<Map> receiver_map = this->map();
+        api_holder_ = call_optimization.LookupHolderOfExpectedType(
+            receiver_map, &holder_lookup);
       }
     }
     accessor_ = accessor;
@@ -7070,6 +7065,11 @@
   if (target->IsBuiltin()) {
     return target_shared->inline_builtin() ? 0 : kNotInlinable;
   }
+
+  if (target_shared->IsApiFunction()) {
+    TraceInline(target, caller, "target is api function");
+    return kNotInlinable;
+  }

   // Do a quick check on source code length to avoid parsing large
   // inlining candidates.

--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to