summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2019-02-07 15:03:53 +0100
committerAraq <rumpf_a@web.de>2019-02-07 15:04:05 +0100
commit84d10f7d8a9488d4b5be3cccb582f966fc02aa64 (patch)
tree981a837cad7090379d573f58307247a30f4aa727
parent3dc270eee504c4e853daf107164bfd7e99e96a0f (diff)
downloadNim-84d10f7d8a9488d4b5be3cccb582f966fc02aa64.tar.gz
fixes #10585
-rw-r--r--compiler/vmops.nim7
1 files changed, 5 insertions, 2 deletions
diff --git a/compiler/vmops.nim b/compiler/vmops.nim
index 56c97dec6..4f9c7cf89 100644
--- a/compiler/vmops.nim
+++ b/compiler/vmops.nim
@@ -62,6 +62,9 @@ template wrap2svoid(op, modop) {.dirty.} =
     op(getString(a, 0), getString(a, 1))
   modop op
 
+template ioop(op) {.dirty.} =
+  registerCallback(c, "stdlib.io." & astToStr(op), `op Wrapper`)
+
 proc getCurrentExceptionMsgWrapper(a: VmArgs) {.nimcall.} =
   setResult(a, if a.currentException.isNil: ""
                else: a.currentException.sons[3].skipColon.strVal)
@@ -113,8 +116,8 @@ proc registerAdditionalOps*(c: PCtx) =
     wrap2svoid(putEnv, osop)
     wrap1s(dirExists, osop)
     wrap1s(fileExists, osop)
-    wrap2svoid(writeFile, systemop)
-    wrap1s(readFile, systemop)
+    wrap2svoid(writeFile, ioop)
+    wrap1s(readFile, ioop)
     systemop getCurrentExceptionMsg
     registerCallback c, "stdlib.*.staticWalkDir", proc (a: VmArgs) {.nimcall.} =
       setResult(a, staticWalkDirImpl(getString(a, 0), getBool(a, 1)))