diff --git a/teavm-classlib/src/main/java/org/teavm/classlib/impl/unicode/UnicodeSupport.java b/teavm-classlib/src/main/java/org/teavm/classlib/impl/unicode/UnicodeSupport.java index 225d6d2ae..296b99b0c 100644 --- a/teavm-classlib/src/main/java/org/teavm/classlib/impl/unicode/UnicodeSupport.java +++ b/teavm-classlib/src/main/java/org/teavm/classlib/impl/unicode/UnicodeSupport.java @@ -144,12 +144,12 @@ public class UnicodeSupport { int j = 0; int t = 0; while (true) { - if (i == a.length) { + if (j == b.length) { while (i < a.length) { result[t++] = a[i++]; } break; - } else if (j == b.length) { + } else if (i == a.length) { while (j < b.length) { result[t++] = b[j++]; } diff --git a/teavm-classlib/src/test/java/org/teavm/classlib/impl/unicode/UnicodeSupportTest.java b/teavm-classlib/src/test/java/org/teavm/classlib/impl/unicode/UnicodeSupportTest.java new file mode 100644 index 000000000..802e0e123 --- /dev/null +++ b/teavm-classlib/src/test/java/org/teavm/classlib/impl/unicode/UnicodeSupportTest.java @@ -0,0 +1,20 @@ +package org.teavm.classlib.impl.unicode; + +import static org.junit.Assert.assertFalse; + +public class UnicodeSupportTest { + + private static boolean pairsEqual(final int[] pairs, final int index1, final int index2) { + return pairs[index1] == pairs[index2] && pairs[index1 + 1] == pairs[index2 + 1]; + } + + @Test + public void test_getDigitValues() { + final int[] digitValues = UnicodeSupport.getDigitValues(); + if (digitValues.length >= 4) { + // there are no duplicates, so the last two pairs should not be identical + assertFalse(pairsEqual(digitValues, digitValues.length - 4, digitValues.length - 2)); + } + } + +}