Adds tests for Js varargs in Java 8 lambdas.

Change-Id: I95d4a6cc736e3afd2e01ba10ef80afbbb1a4ebfe
diff --git a/user/test-super/com/google/gwt/dev/jjs/super/com/google/gwt/dev/jjs/test/Java8Test.java b/user/test-super/com/google/gwt/dev/jjs/super/com/google/gwt/dev/jjs/test/Java8Test.java
index 91a66f0..20008d4 100644
--- a/user/test-super/com/google/gwt/dev/jjs/super/com/google/gwt/dev/jjs/test/Java8Test.java
+++ b/user/test-super/com/google/gwt/dev/jjs/super/com/google/gwt/dev/jjs/test/Java8Test.java
@@ -24,6 +24,7 @@
 import java.util.Arrays;
 import java.util.List;
 
+import jsinterop.annotations.JsFunction;
 import jsinterop.annotations.JsOverlay;
 import jsinterop.annotations.JsProperty;
 import jsinterop.annotations.JsType;
@@ -1346,7 +1347,7 @@
     }
   }
 
-  public void testNativeJsTypeWithStaticIntializer() {
+  public void testNativeJsTypeWithStaticInitializer() {
     assertEquals(3, NativeJsTypeInterfaceWithStaticInitializationAndFieldAccess.object);
     assertEquals(
         4, NativeJsTypeInterfaceWithStaticInitializationAndStaticOverlayMethod.getObject());
@@ -1356,4 +1357,21 @@
     assertEquals(7, NativeJsTypeInterfaceWithComplexStaticInitialization.object);
     assertEquals(9, new JavaTypeImplementingNativeJsTypeInterceWithDefaultMethod().getObject());
   }
+
+  @JsFunction
+  interface VarargsFunction {
+    String f(int i, String... args);
+  }
+
+  private static native String callFromJSNI(VarargsFunction f) /*-{
+    return f(2, "a", "b", "c");
+  }-*/;
+
+  public void testJsVarargsLambda() {
+    VarargsFunction function = (i, args) -> args[i];
+    assertSame("b", function.f(1, "a", "b", "c"));
+    assertSame("c", callFromJSNI(function));
+    String[] pars = new String[] {"a", "b", "c"};
+    assertSame("a", function.f(0, pars));
+ }
 }
diff --git a/user/test/com/google/gwt/dev/jjs/test/Java8Test.java b/user/test/com/google/gwt/dev/jjs/test/Java8Test.java
index d1ff194..a521bf2 100644
--- a/user/test/com/google/gwt/dev/jjs/test/Java8Test.java
+++ b/user/test/com/google/gwt/dev/jjs/test/Java8Test.java
@@ -260,7 +260,11 @@
     assertFalse(isGwtSourceLevel8());
   }
 
-  public void testNativeJsTypeWithStaticIntializer() {
+  public void testNativeJsTypeWithStaticInitializer() {
+    assertFalse(isGwtSourceLevel8());
+  }
+
+  public void testJsVarargsLambda() {
     assertFalse(isGwtSourceLevel8());
   }