mirror of
https://github.com/nim-lang/Nim.git
synced 2026-04-19 14:00:35 +00:00
Added setGlobalValue to VM api (#19007)
This commit is contained in:
@@ -57,6 +57,10 @@ proc callRoutine*(i: Interpreter; routine: PSym; args: openArray[PNode]): PNode
|
||||
proc getGlobalValue*(i: Interpreter; letOrVar: PSym): PNode =
|
||||
result = vm.getGlobalValue(PCtx i.graph.vm, letOrVar)
|
||||
|
||||
proc setGlobalValue*(i: Interpreter; letOrVar: PSym, val: PNode) =
|
||||
## Sets a global value to a given PNode, does not do any type checking.
|
||||
vm.setGlobalValue(PCtx i.graph.vm, letOrVar, val)
|
||||
|
||||
proc implementRoutine*(i: Interpreter; pkg, module, name: string;
|
||||
impl: proc (a: VmArgs) {.closure, gcsafe.}) =
|
||||
assert i != nil
|
||||
|
||||
@@ -2162,6 +2162,11 @@ proc getGlobalValue*(c: PCtx; s: PSym): PNode =
|
||||
internalAssert c.config, s.kind in {skLet, skVar} and sfGlobal in s.flags
|
||||
result = c.globals[s.position-1]
|
||||
|
||||
proc setGlobalValue*(c: PCtx; s: PSym, val: PNode) =
|
||||
## Does not do type checking so ensure the `val` matches the `s.typ`
|
||||
internalAssert c.config, s.kind in {skLet, skVar} and sfGlobal in s.flags
|
||||
c.globals[s.position-1] = val
|
||||
|
||||
include vmops
|
||||
|
||||
proc setupGlobalCtx*(module: PSym; graph: ModuleGraph; idgen: IdGenerator) =
|
||||
|
||||
Reference in New Issue
Block a user