# HG changeset patch # User Jaroslav Tulach # Date 1461773665 -7200 # Node ID 693d35afc8c8754e1914bcf7f4d500b8d29f0020 # Parent 72ef454e3987112028c2935b11ca0085a64313db eval(@JavaScriptResource) as string to prevent double obfuscation diff -r 72ef454e3987 -r 693d35afc8c8 ko/kosample/pom.xml --- a/ko/kosample/pom.xml Wed Apr 27 07:28:33 2016 +0200 +++ b/ko/kosample/pom.xml Wed Apr 27 18:14:25 2016 +0200 @@ -20,7 +20,7 @@ ${project.version} - MINIMAL + FULL 2.13 UTF-8 diff -r 72ef454e3987 -r 693d35afc8c8 rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java Wed Apr 27 07:28:33 2016 +0200 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java Wed Apr 27 18:14:25 2016 +0200 @@ -272,13 +272,13 @@ throw new IOException("Can't find " + resource); } append("\n// resource from ").append(resource).append("\n"); + append("\neval(\""); readResource(emul, this); - append("\n"); + append("\");\n"); } private static void readResource(InputStream emul, Appendable out) throws IOException { try { - int state = 0; for (;;) { int ch = emul.read(); if (ch == -1) { @@ -287,7 +287,25 @@ if (ch < 0 || ch > 255) { throw new IOException("Invalid char in emulation " + ch); } - out.append((char)ch); + switch (ch) { + case '"': + out.append("\\\""); + break; + case '\\': + out.append("\\\\"); + break; + case '\n': + out.append("\\n\"\n + \""); + break; + case '\t': + out.append("\\t"); + break; + case '\r': + out.append("\\r"); + break; + default: + out.append((char)ch); + } } } finally { emul.close();