Merge to XFA: Reland "Cleanup some numeric code.""

This reverts commit 0569ab0b11b723d9bca4ddd642b0cf8828c4bdd1.

This changes the various comparisons of char >= '0' && char <= '9' and
char < '0' || char > '9' to use std::isdigit checks. It also cleans up
a handful of hex to digit conversions to call one common method.

R=tsepez@chromium.org

Review URL: https://codereview.chromium.org/1449873003 .

(cherry picked from commit 3f148915d12f54a946a0c0bf526162b79c39d650)

Review URL: https://codereview.chromium.org/1452673002 .
diff --git a/fpdfsdk/src/javascript/PublicMethods.cpp b/fpdfsdk/src/javascript/PublicMethods.cpp
index 4540850..75327dd 100644
--- a/fpdfsdk/src/javascript/PublicMethods.cpp
+++ b/fpdfsdk/src/javascript/PublicMethods.cpp
@@ -14,6 +14,7 @@
 #include "JS_Runtime.h"
 #include "JS_Value.h"
 #include "color.h"
+#include "core/include/fxcrt/fx_ext.h"
 #include "fpdfsdk/include/fsdk_mgr.h"  // For CPDFDoc_Environment.
 #include "fpdfsdk/include/javascript/IJavaScript.h"
 #include "resource.h"
@@ -108,7 +109,7 @@
 }
 
 FX_BOOL CJS_PublicMethods::IsDigit(char ch) {
-  return (ch >= '0' && ch <= '9');
+  return std::isdigit(ch);
 }
 
 FX_BOOL CJS_PublicMethods::IsAlphabetic(wchar_t ch) {
@@ -388,7 +389,7 @@
 
     FX_WCHAR c = string.GetAt(i);
     if (IsDigit((wchar_t)c)) {
-      nRet = nRet * 10 + (c - '0');
+      nRet = nRet * 10 + FXSYS_toDecimalDigitWide(c);
       nSkip = i - nStart + 1;
       if (nSkip >= nMaxStep)
         break;