src/jdk/nashorn/internal/objects/NativeString.java

Print this page

        

*** 839,849 **** public static Object split(final Object self, final Object separator, final Object limit) { final String str = checkObjectToString(self); final long lim = (limit == UNDEFINED) ? JSType.MAX_UINT : JSType.toUint32(limit); if (separator == UNDEFINED) { ! return new NativeArray(new Object[]{str}); } if (separator instanceof NativeRegExp) { return ((NativeRegExp) separator).split(str, lim); } --- 839,849 ---- public static Object split(final Object self, final Object separator, final Object limit) { final String str = checkObjectToString(self); final long lim = (limit == UNDEFINED) ? JSType.MAX_UINT : JSType.toUint32(limit); if (separator == UNDEFINED) { ! return limit == 0 ? new NativeArray() : new NativeArray(new Object[]{str}); } if (separator instanceof NativeRegExp) { return ((NativeRegExp) separator).split(str, lim); }
*** 852,863 **** return splitString(str, JSType.toString(separator), lim); } private static Object splitString(String str, String separator, long limit) { if (separator.isEmpty()) { ! final Object[] array = new Object[str.length()]; ! for (int i = 0; i < array.length; i++) { array[i] = String.valueOf(str.charAt(i)); } return new NativeArray(array); } --- 852,864 ---- return splitString(str, JSType.toString(separator), lim); } private static Object splitString(String str, String separator, long limit) { if (separator.isEmpty()) { ! final int length = (int) Math.min(str.length(), limit); ! final Object[] array = new Object[length]; ! for (int i = 0; i < length; i++) { array[i] = String.valueOf(str.charAt(i)); } return new NativeArray(array); }