From 5129a1e88d7164f9ee3a9205127bd418a0eceb1d Mon Sep 17 00:00:00 2001 From: Jasper Jenkins Date: Thu, 28 Nov 2019 14:01:17 -0800 Subject: [PATCH] make addQuoted work on nimscript (#12717) [backport] (cherry picked from commit 9ea55eccbbc61c6e7429c094b6ced41ce5535aeb) --- lib/system.nim | 18 ++++++++++++------ tests/compilerapi/myscript.nim | 5 +++++ tests/compilerapi/tcompilerapi.nim | 1 + 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/lib/system.nim b/lib/system.nim index 4b756974dc..709623f779 100644 --- a/lib/system.nim +++ b/lib/system.nim @@ -3870,6 +3870,12 @@ elif defined(JS): if x < y: return -1 return 1 +when defined(JS) or defined(nimscript): + proc addInt*(result: var string; x: int64) = + result.add $x + + proc addFloat*(result: var string; x: float) = + result.add $x proc quit*(errormsg: string, errorcode = QuitFailure) {.noreturn.} = ## A shorthand for ``echo(errormsg); quit(errorcode)``. @@ -4551,12 +4557,12 @@ type when defined(genode): var componentConstructHook*: proc (env: GenodeEnv) {.nimcall.} - ## Hook into the Genode component bootstrap process. - ## - ## This hook is called after all globals are initialized. - ## When this hook is set the component will not automatically exit, - ## call ``quit`` explicitly to do so. This is the only available method - ## of accessing the initial Genode environment. + ## Hook into the Genode component bootstrap process. + ## + ## This hook is called after all globals are initialized. + ## When this hook is set the component will not automatically exit, + ## call ``quit`` explicitly to do so. This is the only available method + ## of accessing the initial Genode environment. proc nim_component_construct(env: GenodeEnv) {.exportc.} = ## Procedure called during ``Component::construct`` by the loader. diff --git a/tests/compilerapi/myscript.nim b/tests/compilerapi/myscript.nim index 539b07de11..c5d9fe22a6 100644 --- a/tests/compilerapi/myscript.nim +++ b/tests/compilerapi/myscript.nim @@ -1,7 +1,12 @@ import exposed +type NumberHolder = object + ival: int + fval: float + echo "top level statements are executed!" +echo NumberHolder(ival: 10, fval: 2.0) proc hostProgramRunsThis*(a, b: float): float = result = addFloats(a, b, 1.0) diff --git a/tests/compilerapi/tcompilerapi.nim b/tests/compilerapi/tcompilerapi.nim index 494765a8ba..edeaa2ba55 100644 --- a/tests/compilerapi/tcompilerapi.nim +++ b/tests/compilerapi/tcompilerapi.nim @@ -1,5 +1,6 @@ discard """ output: '''top level statements are executed! +(ival: 10, fval: 2.0) 2.0 my secret 11