Revision: 12079
Author:   [email protected]
Date:     Fri Jul 13 02:37:03 2012
Log:      Handle setters on the prototype chain efficiently by default.

Note that changes on the prototype chain should already be handled by
StubCompiler::CheckPrototypes, if not, it is a bug there and not in
LookupForWrite. Furthermore, neither test262 nor WebKit layout tests hint at a
compability issue, so it should be safe to remove a redundant check.

The good point about this CL: It improves Box2D's performance by 22%.

Review URL: https://chromiumcodereview.appspot.com/10695197
http://code.google.com/p/v8/source/detail?r=12079

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

=======================================
--- /branches/bleeding_edge/src/ic.cc   Wed Jul 11 07:26:42 2012
+++ /branches/bleeding_edge/src/ic.cc   Fri Jul 13 02:37:03 2012
@@ -1316,11 +1316,9 @@
                            LookupResult* lookup) {
   receiver->LocalLookup(*name, lookup);
   if (!StoreICableLookup(lookup)) {
- // 2nd chance: There can be accessors somewhere in the prototype chain, but - // for compatibility reasons we have to hide this behind a flag. Note that - // we explicitly exclude native accessors for now, because the stubs are not
-    // yet prepared for this scenario.
-    if (!FLAG_es5_readonly) return false;
+ // 2nd chance: There can be accessors somewhere in the prototype chain. Note + // that we explicitly exclude native accessors for now, because the stubs
+    // are not yet prepared for this scenario.
     receiver->Lookup(*name, lookup);
     if (!lookup->IsCallbacks()) return false;
     Handle<Object> callback(lookup->GetCallbackObject());

--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to