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),
