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