From eadd0d72cffd0d8470f42b873abda251e2e5eded Mon Sep 17 00:00:00 2001 From: Amjad Ben Hedhili Date: Sat, 23 Sep 2023 15:10:17 +0100 Subject: [PATCH] Initialize `newString` in js [backport:1.6] (#22745) ```nim echo newString(8) ``` results in: ``` D:\User\test.js:25 var code_33556944 = c_33556931.toString(16); ^ TypeError: Cannot read properties of undefined (reading 'toString') at toJSStr (D:\User\test.js:25:50) at rawEcho (D:\User\test.js:70:16) at Object. (D:\User\test.js:101:1) at Module._compile (node:internal/modules/cjs/loader:1095:14) at Object.Module._extensions..js (node:internal/modules/cjs/loader:1147:10) at Module.load (node:internal/modules/cjs/loader:975:32) at Function.Module._load (node:internal/modules/cjs/loader:822:12) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) at node:internal/main/run_main_module:17:47 Node.js v17.0.1 Error: execution of an external program failed: '"C:\Program Files\nodejs\node.exe" --unhandled-rejections=strict D:\User\test.js' ``` --- lib/system/jssys.nim | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/system/jssys.nim b/lib/system/jssys.nim index 3bf506e1e8..1c8ea9d888 100644 --- a/lib/system/jssys.nim +++ b/lib/system/jssys.nim @@ -278,7 +278,9 @@ proc toJSStr(s: string): cstring {.compilerproc.} = proc mnewString(len: int): string {.asmNoStackFrame, compilerproc.} = asm """ - return new Array(`len`); + var result = new Array(`len`); + for (var i = 0; i < `len`; i++) {result[i] = 0;} + return result; """ proc SetCard(a: int): int {.compilerproc, asmNoStackFrame.} =