Remove Stream usage from Throwable for smaller generated JS output size

Change-Id: I2506993b5e90aef9136aa8c739eb0bc74ad5e06e
Bug-Link: https://github.com/gwtproject/gwt/issues/9697
Bug: #9697
diff --git a/user/super/com/google/gwt/emul/java/lang/Throwable.java b/user/super/com/google/gwt/emul/java/lang/Throwable.java
index cbee36f..60c8a12 100644
--- a/user/super/com/google/gwt/emul/java/lang/Throwable.java
+++ b/user/super/com/google/gwt/emul/java/lang/Throwable.java
@@ -21,7 +21,6 @@
 
 import java.io.PrintStream;
 import java.io.Serializable;
-import java.util.Arrays;
 
 import javaemul.internal.annotations.DoNotInline;
 
@@ -173,7 +172,13 @@
   }-*/;
 
   private Object[] getBackingSuppressed() {
-    return Arrays.stream(getSuppressed()).map(t -> t.backingJsObject).toArray();
+    // local variable as the whole method ends up being inlined three times
+    Throwable[] suppressed = getSuppressed();
+    Object[] result = new Object[suppressed.length];
+    for (int i = 0; i < suppressed.length; i++) {
+      result[i] = suppressed[i].backingJsObject;
+    }
+    return result;
   }
 
   /**
diff --git a/user/test/com/google/gwt/core/client/impl/StackTraceEmulTest.java b/user/test/com/google/gwt/core/client/impl/StackTraceEmulTest.java
index 97e8978..b15ce75 100644
--- a/user/test/com/google/gwt/core/client/impl/StackTraceEmulTest.java
+++ b/user/test/com/google/gwt/core/client/impl/StackTraceEmulTest.java
@@ -67,7 +67,7 @@
     String[] methodNames = getTraceJava();
 
     StackTraceElement[] expectedTrace = new StackTraceElement[] {
-        createSTE(methodNames[0], "Throwable.java", 69),
+        createSTE(methodNames[0], "Throwable.java", 68),
         createSTE(methodNames[1], "Exception.java", 29),
         createSTE(methodNames[2], "StackTraceExamples.java", 57),
         createSTE(methodNames[3], "StackTraceExamples.java", 52),