Version 2.0.87

Cherry-pick: Use compat mode for shrinking the desugared library
CL: https://r8-review.googlesource.com/c/r8/+/52143

Bug: 158815562
Change-Id: I5bf5490ed41b4dfdf08e3c58090087c6f4b7dda1
diff --git a/src/main/java/com/android/tools/r8/L8Command.java b/src/main/java/com/android/tools/r8/L8Command.java
index d190d6c..9388d47 100644
--- a/src/main/java/com/android/tools/r8/L8Command.java
+++ b/src/main/java/com/android/tools/r8/L8Command.java
@@ -276,7 +276,7 @@
 
       if (isShrinking()) {
         R8Command.Builder r8Builder =
-            R8Command.builder(getReporter())
+            new CompatProguardCommandBuilder(true, getReporter())
                 .addProgramResourceProvider(desugaredLibrary)
                 .setMinApiLevel(getMinApiLevel())
                 .setMode(getMode())
diff --git a/src/main/java/com/android/tools/r8/Version.java b/src/main/java/com/android/tools/r8/Version.java
index 80f3b35..ce8b350 100644
--- a/src/main/java/com/android/tools/r8/Version.java
+++ b/src/main/java/com/android/tools/r8/Version.java
@@ -11,7 +11,7 @@
 
   // This field is accessed from release scripts using simple pattern matching.
   // Therefore, changing this field could break our release scripts.
-  public static final String LABEL = "2.0.86";
+  public static final String LABEL = "2.0.87";
 
   private Version() {
   }
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/JavaTimeTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/JavaTimeTest.java
index bb51ec7..025d080 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/JavaTimeTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/JavaTimeTest.java
@@ -36,7 +36,7 @@
   private final TestParameters parameters;
   private final boolean shrinkDesugaredLibrary;
   private static final String expectedOutput =
-      StringUtils.lines("Caught java.time.format.DateTimeParseException", "Hello, world");
+      StringUtils.lines("Caught java.time.format.DateTimeParseException", "true", "Hello, world");
 
   @Parameters(name = "{1}, shrinkDesugaredLibrary: {0}")
   public static List<Object[]> data() {
@@ -55,12 +55,14 @@
     Set<String> expectedCheckCastType;
     String expectedInstanceOfTypes;
     if (parameters.getApiLevel().getLevel() >= 26) {
-      expectedInvokeHolders = ImmutableSet.of("java.time.Clock", "java.time.LocalDate");
+      expectedInvokeHolders =
+          ImmutableSet.of("java.time.Clock", "java.time.LocalDate", "java.time.ZoneOffset");
       expectedCatchGuards = ImmutableSet.of("java.time.format.DateTimeParseException");
       expectedCheckCastType = ImmutableSet.of("java.time.ZoneId");
       expectedInstanceOfTypes = "java.time.ZoneOffset";
     } else {
-      expectedInvokeHolders = ImmutableSet.of("j$.time.Clock", "j$.time.LocalDate");
+      expectedInvokeHolders =
+          ImmutableSet.of("j$.time.Clock", "j$.time.LocalDate", "j$.time.ZoneOffset");
       expectedCatchGuards = ImmutableSet.of("j$.time.format.DateTimeParseException");
       expectedCheckCastType = ImmutableSet.of("j$.time.ZoneId");
       expectedInstanceOfTypes = "j$.time.ZoneOffset";
@@ -157,6 +159,7 @@
       if (newObjectInstance() instanceof java.time.ZoneOffset) {
         System.out.println("NOT!");
       }
+      System.out.println(java.time.ZoneOffset.getAvailableZoneIds().size() > 0);
       System.out.println("Hello, world");
     }
   }