Code size optimization for Throwable's most common use cases.

Review by: bobv (postmortem)


git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@1680 8db76d5a-ed1c-0410-87a9-c151d255dfc7
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 6cfd85b..d593a6a 100644
--- a/user/super/com/google/gwt/emul/java/lang/Throwable.java
+++ b/user/super/com/google/gwt/emul/java/lang/Throwable.java
@@ -24,11 +24,9 @@
  */
 public class Throwable {
 
-  private static final StackTraceElement[] NO_STACK_TRACE = new StackTraceElement[0];
-
   private Throwable cause;
   private String message;
-  private StackTraceElement[] stackTrace = NO_STACK_TRACE;
+  private StackTraceElement[] stackTrace;
 
   public Throwable() {
   }
@@ -76,6 +74,9 @@
    * @return the current stack trace
    */
   public StackTraceElement[] getStackTrace() {
+    if (stackTrace == null) {
+      return new StackTraceElement[0];
+    }
     return stackTrace;
   }