Update getGeckoVersion() to support beta versions of Firefox.

Previously, gecko versions of the form 2.0b10 would cause the regex to get mad because it is missing a second period. This change updates the gecko version detector to support gecko versions such as 1.2.3, 1.2, and 2.0b10.

Review at http://gwt-code-reviews.appspot.com/1343803

Review by: jlabanca@google.com

git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@9684 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/dom/client/DOMImplMozilla.java b/user/src/com/google/gwt/dom/client/DOMImplMozilla.java
index d892460..7891f97 100644
--- a/user/src/com/google/gwt/dom/client/DOMImplMozilla.java
+++ b/user/src/com/google/gwt/dom/client/DOMImplMozilla.java
@@ -19,12 +19,12 @@
  * Mozilla implementation of StandardBrowser.
  */
 class DOMImplMozilla extends DOMImplStandard {
-  
+
   private static native int getGeckoVersion() /*-{
-    var result = /rv:([0-9]+)\.([0-9]+)\.([0-9]+)?/.exec(navigator.userAgent.toLowerCase());
+    var result = /rv:([0-9]+)\.([0-9]+)(\.([0-9]+))?.*?/.exec(navigator.userAgent.toLowerCase());
     if (result && result.length >= 3) {
-      var version = (parseInt(result[1]) * 1000000) + (parseInt(result[2]) * 1000) + 
-        parseInt(result.length == 4 ? result[3] : 0);
+      var version = (parseInt(result[1]) * 1000000) + (parseInt(result[2]) * 1000) +
+        parseInt(result.length >= 5 && !isNaN(result[4]) ? result[4] : 0);
       return version;
     }
     return -1; // not gecko
@@ -40,7 +40,7 @@
     int geckoVersion = getGeckoVersion();
     return (geckoVersion != -1) && (geckoVersion <= 1009000);
   }
-  
+
   /**
    * Return true if using Gecko 1.9.1 (Firefox 3.5) or earlier.
    *