summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--lib/system/jssys.nim6
-rw-r--r--tests/js/testtojsstr.nim6
2 files changed, 11 insertions, 1 deletions
diff --git a/lib/system/jssys.nim b/lib/system/jssys.nim
index 99997efe6..ce67373bc 100644
--- a/lib/system/jssys.nim
+++ b/lib/system/jssys.nim
@@ -248,8 +248,12 @@ proc toJSStr(s: string): cstring {.asmNoStackFrame, compilerproc.} =
     for (var i = 0; i < len; ++i) {
       if (nonAsciiPart !== null) {
         var offset = (i - nonAsciiOffset) * 2;
+        var code = `s`[i].toString(16);
+        if (code.length == 1) {
+          code = "0"+code;
+        }
         nonAsciiPart[offset] = "%";
-        nonAsciiPart[offset + 1] = `s`[i].toString(16);
+        nonAsciiPart[offset + 1] = code;
       }
       else if (`s`[i] < 128)
         asciiPart[i] = fcc(`s`[i]);
diff --git a/tests/js/testtojsstr.nim b/tests/js/testtojsstr.nim
new file mode 100644
index 000000000..c73b80254
--- /dev/null
+++ b/tests/js/testtojsstr.nim
@@ -0,0 +1,6 @@
+discard """
+  output = ""
+"""
+
+let s: string = "И\n"
+let cs = s.cstring