Applying dmenzi's patch to fix issue 7291, which causes Integer.parseInt to fail on BlackBerry OS7.

Change-Id: I41bfc55c699a36f0b4989b7e395a27181a6d5db7
Review-Link: https://gwt-review.googlesource.com/#/c/2120/

Review by: mdempsky@google.com

git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@11541 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/super/com/google/gwt/emul/java/lang/Number.java b/user/super/com/google/gwt/emul/java/lang/Number.java
index ab89197..f281d02 100644
--- a/user/super/com/google/gwt/emul/java/lang/Number.java
+++ b/user/super/com/google/gwt/emul/java/lang/Number.java
@@ -215,9 +215,12 @@
     }
 
     int toReturn = __parseInt(s, radix);
+    // isTooLow is separated into its own variable to avoid a bug in BlackBerry OS 7. See
+    // https://code.google.com/p/google-web-toolkit/issues/detail?id=7291.
+    boolean isTooLow = toReturn < lowerBound;
     if (__isNaN(toReturn)) {
       throw NumberFormatException.forInputString(s);
-    } else if (toReturn < lowerBound || toReturn > upperBound) {
+    } else if (isTooLow || toReturn > upperBound) {
       throw NumberFormatException.forInputString(s);
     }
 
diff --git a/user/test/com/google/gwt/emultest/java/lang/IntegerTest.java b/user/test/com/google/gwt/emultest/java/lang/IntegerTest.java
index f008436..d36d607 100644
--- a/user/test/com/google/gwt/emultest/java/lang/IntegerTest.java
+++ b/user/test/com/google/gwt/emultest/java/lang/IntegerTest.java
@@ -261,8 +261,16 @@
   public void testValueOf() {
     assertEquals(new Integer(12345), Integer.valueOf("12345"));
     assertEquals(new Integer(1865), Integer.valueOf("12345", 6));
+  }
+
+  public void testParseInt() {
     assertEquals(12345, Integer.parseInt("12345"));
     assertEquals(1865, Integer.parseInt("12345", 6));
+    assertEquals(0, Integer.parseInt("0"));
+    assertEquals(Integer.MAX_VALUE,
+        Integer.parseInt(String.valueOf(Integer.MAX_VALUE)));
+    assertEquals(Integer.MIN_VALUE,
+        Integer.parseInt(String.valueOf(Integer.MIN_VALUE)));
   }
 
   public void testXValue() {