Revision: 15612
Author:   [email protected]
Date:     Thu Jul 11 00:52:57 2013
Log: Fix StoreIsUninitialized, and add Soft Deopt if keyed store is uninitialized.

[email protected]

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

Modified:
 /branches/bleeding_edge/src/hydrogen.cc
 /branches/bleeding_edge/src/type-info.cc

=======================================
--- /branches/bleeding_edge/src/hydrogen.cc     Wed Jul 10 09:34:28 2013
+++ /branches/bleeding_edge/src/hydrogen.cc     Thu Jul 11 00:52:57 2013
@@ -5996,8 +5996,14 @@
         expr->GetStoreMode(), has_side_effects);
   } else {
     if (is_store) {
+ if (expr->IsAssignment() && expr->AsAssignment()->IsUninitialized()) {
+        AddSoftDeoptimize();
+      }
       instr = BuildStoreKeyedGeneric(obj, key, val);
     } else {
+      if (expr->AsProperty()->IsUninitialized()) {
+        AddSoftDeoptimize();
+      }
       instr = BuildLoadKeyedGeneric(obj, key);
     }
     AddInstruction(instr);
=======================================
--- /branches/bleeding_edge/src/type-info.cc    Wed Jul 10 09:03:00 2013
+++ /branches/bleeding_edge/src/type-info.cc    Thu Jul 11 00:52:57 2013
@@ -141,7 +141,7 @@
 bool TypeFeedbackOracle::StoreIsUninitialized(TypeFeedbackId ast_id) {
   Handle<Object> map_or_code = GetInfo(ast_id);
   if (map_or_code->IsMap()) return false;
-  if (!map_or_code->IsCode()) return true;
+  if (!map_or_code->IsCode()) return false;
   Handle<Code> code = Handle<Code>::cast(map_or_code);
   return code->ic_state() == UNINITIALIZED;
 }

--
--
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/groups/opt_out.


Reply via email to