Version 3.4.11

Fixed MinGW32 build.

Fixed a GC bug with RegExp code flushing.

Implemented Object.defineProperty for proxies.

Fixed a bug in for/in iteration of arguments objects (issue 1531).

Added debugger support for inspecting optimized frames (issue 1140).

Allowed JSObject::PreventExtensions to work for arguments objects.

Bugfixes and performance work.


git-svn-id: http://v8.googlecode.com/svn/trunk@8592 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h
index cc32b93..401c2e4 100644
--- a/src/hydrogen-instructions.h
+++ b/src/hydrogen-instructions.h
@@ -2003,14 +2003,7 @@
   virtual void Verify();
 #endif
 
-  virtual HValue* Canonicalize() {
-    if (!value()->type().IsUninitialized() &&
-        value()->type().IsString() &&
-        check_ == IS_STRING) {
-      return NULL;
-    }
-    return this;
-  }
+  virtual HValue* Canonicalize();
 
   bool is_interval_check() const { return check_ <= LAST_INTERVAL_CHECK; }
   void GetCheckInterval(InstanceType* first, InstanceType* last);
@@ -3362,8 +3355,9 @@
 
 
 static inline bool StoringValueNeedsWriteBarrier(HValue* value) {
-  return !value->type().IsSmi() &&
-      !(value->IsConstant() && HConstant::cast(value)->InOldSpace());
+  return !value->type().IsBoolean()
+      && !value->type().IsSmi()
+      && !(value->IsConstant() && HConstant::cast(value)->InOldSpace());
 }