diff options
-rw-r--r-- | lib/system/jssys.nim | 6 | ||||
-rw-r--r-- | tests/js/testtojsstr.nim | 6 |
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 |