Reviewers: Søren Gjesse,

Description:
Merge r4182 to trunk.

Fixes a crash in the code generator.

[email protected],

Committed: http://code.google.com/p/v8/source/detail?r=4183

Please review this at http://codereview.chromium.org/1098002

SVN Base: http://v8.googlecode.com/svn/trunk/

Affected files:
  M     src/ia32/codegen-ia32.cc
  M     src/version.cc
  M     test/mjsunit/compiler/loopcount.js


Index: test/mjsunit/compiler/loopcount.js
===================================================================
--- test/mjsunit/compiler/loopcount.js  (revision 4178)
+++ test/mjsunit/compiler/loopcount.js  (working copy)
@@ -54,5 +54,33 @@
 }
 assertEquals(-0x40000001, f5());

+
 function f6() { var x = 0x3fffffff; x++; return x+1; }
 assertEquals(0x40000001, f6());
+
+
+function f7() {
+  var i;
+  for (i = 0x3ffffffd; i <= 0x3ffffffe; i++) {}
+  i++; i = i + 1;
+  return i;
+}
+assertEquals(0x40000001, f7());
+
+
+function f8() {
+  var i;
+  for (i = 0x3ffffffd; i <= 0x3fffffff; i++) {}
+  i++; i++;
+  return i;
+}
+assertEquals(0x40000002, f8());
+
+
+function f9() {
+  var i;
+  for (i = 0; i < 42; i++) {
+    return 42;
+  }
+}
+assertEquals(42, f9());
Index: src/ia32/codegen-ia32.cc
===================================================================
--- src/ia32/codegen-ia32.cc    (revision 4178)
+++ src/ia32/codegen-ia32.cc    (working copy)
@@ -3765,7 +3765,7 @@

   // The update expression resets the type of the loop variable. So we
   // set it to smi before compiling the test expression.
-  if (node->is_fast_smi_loop()) {
+  if (node->is_fast_smi_loop() && has_valid_frame()) {
     // Set number type of the loop variable to smi.
     Slot* slot = node->loop_variable()->slot();
     ASSERT(slot->type() == Slot::LOCAL);
Index: src/version.cc
===================================================================
--- src/version.cc      (revision 4178)
+++ src/version.cc      (working copy)
@@ -35,7 +35,7 @@
 #define MAJOR_VERSION     2
 #define MINOR_VERSION     1
 #define BUILD_NUMBER      6
-#define PATCH_LEVEL       1
+#define PATCH_LEVEL       2
 #define CANDIDATE_VERSION false

 // Define SONAME to have the SCons build the put a specific SONAME into the


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

Reply via email to