Replace String.equals with == in InternalPreconditions.

Due to cycle between java.lang.String and InternalPreconditions
it requires more parsses to turn precidition flags into static
constants.
This also prevents equals to be fully optimized as it results in a
checken-egg problem in J2CL (equals needs checkNotNull to be removed
to be evaluated but checkNotNull cannot be removed before the equals
calls in preconditions evaluated).
GWT doesn't hit this problems because String.equals is special cased
for optimization purposes.

Change-Id: Ib32bb141f98477cde7b8d56689a86829e1cf0a94
diff --git a/user/super/com/google/gwt/emul/javaemul/internal/InternalPreconditions.java b/user/super/com/google/gwt/emul/javaemul/internal/InternalPreconditions.java
index 8d3d5f4..65b498f 100644
--- a/user/super/com/google/gwt/emul/javaemul/internal/InternalPreconditions.java
+++ b/user/super/com/google/gwt/emul/javaemul/internal/InternalPreconditions.java
@@ -76,32 +76,34 @@
   private static final String CHECK_BOUNDS = getProperty("jre.checks.bounds");
   private static final String CHECK_API = getProperty("jre.checks.api");
 
+  // Note that == used instead of equals below for comparisons as it is easier/quicker to optimize.
+
   // NORMAL
   private static final boolean LEVEL_NORMAL_OR_HIGHER =
-      getProperty("jre.checks.checkLevel").equals("NORMAL");
+      getProperty("jre.checks.checkLevel") == "NORMAL";
   // NORMAL or OPTIMIZED
   private static final boolean LEVEL_OPT_OR_HIGHER =
-      getProperty("jre.checks.checkLevel").equals("OPTIMIZED") || LEVEL_NORMAL_OR_HIGHER;
+      getProperty("jre.checks.checkLevel") == "OPTIMIZED" || LEVEL_NORMAL_OR_HIGHER;
   // NORMAL or OPTIMIZED or MINIMAL
   private static final boolean LEVEL_MINIMAL_OR_HIGHER =
-      getProperty("jre.checks.checkLevel").equals("MINIMAL") || LEVEL_OPT_OR_HIGHER;
+      getProperty("jre.checks.checkLevel") == "MINIMAL" || LEVEL_OPT_OR_HIGHER;
 
   static {
     if (!LEVEL_MINIMAL_OR_HIGHER) {
       throw new IllegalStateException("Incorrect level: " + getProperty("jre.checks.checkLevel"));
     }
   }
-
+  
   private static final boolean IS_TYPE_CHECKED =
-      (CHECK_TYPE.equals("AUTO") && LEVEL_OPT_OR_HIGHER) || CHECK_TYPE.equals("ENABLED");
+      CHECK_TYPE == "AUTO" && LEVEL_OPT_OR_HIGHER || CHECK_TYPE == "ENABLED";
   private static final boolean IS_BOUNDS_CHECKED =
-      (CHECK_BOUNDS.equals("AUTO") && LEVEL_NORMAL_OR_HIGHER) || CHECK_BOUNDS.equals("ENABLED");
+      CHECK_BOUNDS == "AUTO" && LEVEL_NORMAL_OR_HIGHER || CHECK_BOUNDS == "ENABLED";
   private static final boolean IS_API_CHECKED =
-      (CHECK_API.equals("AUTO") && LEVEL_NORMAL_OR_HIGHER) || CHECK_API.equals("ENABLED");
+      CHECK_API == "AUTO" && LEVEL_NORMAL_OR_HIGHER || CHECK_API == "ENABLED";
   private static final boolean IS_NUMERIC_CHECKED =
-      (CHECK_NUMERIC.equals("AUTO") && LEVEL_NORMAL_OR_HIGHER) || CHECK_NUMERIC.equals("ENABLED");
+      CHECK_NUMERIC == "AUTO" && LEVEL_NORMAL_OR_HIGHER || CHECK_NUMERIC == "ENABLED";
 
-  private static final boolean IS_ASSERTED = getProperty("jre.checkedMode").equals("ENABLED");
+  private static final boolean IS_ASSERTED = getProperty("jre.checkedMode") == "ENABLED";
 
   /**
    * This method reports if the code is compiled with type checks.