Initial push.
diff --git a/src/test/examples/newarray/NewArray.java b/src/test/examples/newarray/NewArray.java
new file mode 100644
index 0000000..b652324
--- /dev/null
+++ b/src/test/examples/newarray/NewArray.java
@@ -0,0 +1,168 @@
+// Copyright (c) 2016, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+package newarray;
+
+class NewArray {
+
+  static class A {
+    int v0;
+    int v1;
+    int v2;
+    int v3;
+    int v4;
+    int v5;
+    int v6;
+  }
+
+  public static void printArray(int[] array) {
+    for (int i : array) System.out.println(i);
+  }
+
+  public static void test() {
+    int x0[] = new int[]{};
+    int x1[] = new int[]{0};
+    int x2[] = new int[]{0, 1};
+    int x3[] = new int[]{0, 1, 2};
+    int x4[] = new int[]{0, 1, 2, 3};
+    int x5[] = new int[]{0, 1, 2, 3, 4};
+    int x6[] = new int[]{0, 1, 2, 3, 4, 5};
+    int x7[] = new int[]{0, 1, 2, 3, 4, 5, 6};
+    int x8[] = new int[]{0, 1, 2, 3, 4, 5, 6, 7};
+    int x9[] = new int[]{0, 1, 0, 3, 4, 0, 6, 7};
+    printArray(x0);
+    printArray(x1);
+    printArray(x2);
+    printArray(x3);
+    printArray(x4);
+    printArray(x5);
+    printArray(x6);
+    printArray(x7);
+    printArray(x8);
+    printArray(x9);
+  }
+
+  public static void testIntArgs(int v0, int v1, int v2, int v3, int v4, int v5) {
+    int x0[] = new int[]{};
+    int x1[] = new int[]{v0};
+    int x2[] = new int[]{v0, v1};
+    int x3[] = new int[]{v0, v1, v2};
+    int x4[] = new int[]{v0, v1, v2, v3};
+    int x5[] = new int[]{v0, v1, v2, v3, v4};
+    int x6[] = new int[]{v0, v1, v2, v3, v4, v5};
+    int x7[] = new int[]{v0, v1, v2, v3, v4, v5, v0, v1, v0, v4, v0};
+    printArray(x0);
+    printArray(x1);
+    printArray(x2);
+    printArray(x3);
+    printArray(x4);
+    printArray(x5);
+    printArray(x6);
+    printArray(x7);
+  }
+
+  public static void testObjectArg(A a) {
+    int x0[] = new int[]{};
+    int x1[] = new int[]{a.v0};
+    int x2[] = new int[]{a.v0, a.v1};
+    int x3[] = new int[]{a.v0, a.v1, a.v2};
+    int x4[] = new int[]{a.v0, a.v1, a.v2, a.v3};
+    int x5[] = new int[]{a.v0, a.v1, a.v2, a.v3, a.v4};
+    int x6[] = new int[]{a.v0, a.v1, a.v2, a.v3, a.v4, a.v5};
+    int x7[] = new int[]{a.v0, a.v1, a.v2, a.v3, a.v4, a.v5, a.v6};
+    int x8[] = new int[]{a.v0, a.v1, a.v2, a.v0, a.v3, a.v4, a.v5, a.v6};
+    printArray(x0);
+    printArray(x1);
+    printArray(x2);
+    printArray(x3);
+    printArray(x4);
+    printArray(x5);
+    printArray(x6);
+    printArray(x7);
+    printArray(x8);
+  }
+
+  public static void newMultiDimensionalArrays(int n) {
+    int[][] i2 = new int[n][n];
+    int[][][] i3 = new int[n][n][n];
+    int[][][][] i4 = new int[n][n][n][n];
+    int[][][][][] i5 = new int[n][n][n][n][n];
+    int[][][][][][] i6 = new int[n][n][n][n][n][n];
+    System.out.println(i2.length);
+    System.out.println(i3.length);
+    System.out.println(i4.length);
+    System.out.println(i5.length);
+    System.out.println(i6.length);
+  }
+
+  public static void newMultiDimensionalArrays2(int n1, int n2, int n3, int n4, int n5, int n6) {
+    int[][] i2 = new int[n1][n2];
+    System.out.println(i2.length);
+    int[][][] i3 = new int[n1][n2][n3];
+    System.out.println(i3.length);
+    int[][][][] i4 = new int[n1][n2][n3][n4];
+    System.out.println(i4.length);
+    int[][][][][] i5 = new int[n1][n2][n3][n4][n5];
+    System.out.println(i5.length);
+    int[][][][][][] i6 = new int[n1][n2][n3][n4][n5][n6];
+    System.out.println(i6.length);
+    int[][][][][][] i7 = new int[n1][n2][n1][n4][n5][n1];
+    System.out.println(i7.length);
+  }
+
+  public static void newMultiDimensionalArrays3(int n) {
+    int[][][] i3 = new int[n][n][];
+    int[][][][] i4 = new int[n][n][][];
+    int[][][][][][][] i7 = new int[n][n][n][n][n][n][];
+    int[][][][][][][][] i8 = new int[n][n][n][n][n][n][][];
+    System.out.println(i3.length);
+    System.out.println(i4.length);
+    System.out.println(i7.length);
+    System.out.println(i8.length);
+  }
+
+  public static void newMultiDimensionalArrays4() {
+    boolean[][] a1 = new boolean[1][2];
+    byte[][] a2 = new byte[3][4];
+    char[][] a3 = new char[5][6];
+    short[][] a4 = new short[7][8];
+    long[][] a5 = new long[9][10];
+    float[][] a6 = new float[11][12];
+    double[][] a7 = new double[13][14];
+    A[][] a8 = new A[15][16];
+    System.out.println(a1[0].length);
+    System.out.println(a2[0].length);
+    System.out.println(a3[0].length);
+    System.out.println(a4[0].length);
+    System.out.println(a5[0].length);
+    System.out.println(a6[0].length);
+    System.out.println(a7[0].length);
+    System.out.println(a8[0].length);
+    System.out.println(a1[0][0]);
+    System.out.println(a2[0][0]);
+    System.out.println(a3[0][0]);
+    System.out.println(a4[0][0]);
+    System.out.println(a5[0][0]);
+    System.out.println(a6[0][0]);
+    System.out.println(a7[0][0]);
+    System.out.println(a8[0][0]);
+  }
+
+  public static void main(String[] args) {
+    test();
+    testIntArgs(0, 1, 2, 3, 4, 5);
+    A a = new A();
+    a.v0 = 0;
+    a.v1 = 1;
+    a.v2 = 2;
+    a.v3 = 3;
+    a.v4 = 4;
+    a.v5 = 5;
+    a.v6 = 6;
+    testObjectArg(a);
+    newMultiDimensionalArrays(6);
+    newMultiDimensionalArrays2(1, 2, 3, 4, 5, 6);
+    newMultiDimensionalArrays3(8);
+    newMultiDimensionalArrays4();
+  }
+}
\ No newline at end of file