1.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeParser.java Wed Oct 09 16:45:28 2013 +0200
1.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeParser.java Wed Oct 09 16:53:45 2013 +0200
1.3 @@ -1845,6 +1845,12 @@
1.4 case '\"':
1.5 sb.append('\\').append('\"');
1.6 break;
1.7 + case '\u2028':
1.8 + sb.append("\\u2028");
1.9 + break;
1.10 + case '\u2029':
1.11 + sb.append("\\u2029");
1.12 + break;
1.13 default:
1.14 sb.append(c);
1.15 }
2.1 --- a/rt/vm/src/test/java/org/apidesign/vm4brwsr/StringSample.java Wed Oct 09 16:45:28 2013 +0200
2.2 +++ b/rt/vm/src/test/java/org/apidesign/vm4brwsr/StringSample.java Wed Oct 09 16:53:45 2013 +0200
2.3 @@ -80,6 +80,10 @@
2.4 return sb.toString().toString();
2.5 }
2.6
2.7 + public static String unicode() {
2.8 + return "\r\n\u2028\u2029]";
2.9 + }
2.10 +
2.11 public static String insertBuffer() {
2.12 StringBuilder sb = new StringBuilder();
2.13 sb.append("Jardo!");
3.1 --- a/rt/vm/src/test/java/org/apidesign/vm4brwsr/StringTest.java Wed Oct 09 16:45:28 2013 +0200
3.2 +++ b/rt/vm/src/test/java/org/apidesign/vm4brwsr/StringTest.java Wed Oct 09 16:53:45 2013 +0200
3.3 @@ -213,6 +213,16 @@
3.4 exp, false, true
3.5 );
3.6 }
3.7 +
3.8 + @Test public void weirdUnicodeCharacters() throws Exception {
3.9 + String exp = StringSample.unicode();
3.10 +
3.11 + assertExec(
3.12 + "Unicode is OK",
3.13 + StringSample.class, "unicode__Ljava_lang_String_2",
3.14 + exp
3.15 + );
3.16 + }
3.17
3.18 @Test public void valueOfOnJSArray() throws Exception {
3.19 assertExec(