From 50d2d54fb0799def08c2dcb42b64989d7b7bcfa8 Mon Sep 17 00:00:00 2001 From: yglukhov Date: Wed, 17 Jun 2015 23:26:38 +0300 Subject: [PATCH] Fixed fix of #2917 --- lib/system/jssys.nim | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/system/jssys.nim b/lib/system/jssys.nim index 82cf182996..242f42c163 100644 --- a/lib/system/jssys.nim +++ b/lib/system/jssys.nim @@ -178,15 +178,18 @@ proc toJSStr(s: string): cstring {.asmNoStackFrame, compilerproc.} = var asciiPart = new Array(len); var fcc = String.fromCharCode; var nonAsciiPart = null; + var nonAsciiOffset = 0; for (var i = 0; i < len; ++i) { if (nonAsciiPart !== null) { - nonAsciiPart[i * 2] = "%"; - nonAsciiPart[i * 2 + 1] = `s`[i].toString(16); + var offset = (i - nonAsciiOffset) * 2; + nonAsciiPart[offset] = "%"; + nonAsciiPart[offset + 1] = `s`[i].toString(16); } else if (`s`[i] < 128) asciiPart[i] = fcc(`s`[i]); else { asciiPart.length = i; + nonAsciiOffset = i; nonAsciiPart = new Array((len - i) * 2); --i; }