[closes #11625 and closes #2488]add global and threadvar(with --threads:off mode ) pragmas supports for JS backend (#15772)
* add global pragma support for js backend * globalThis * add support for threadvar * more tests * Update compiler/jsgen.nim Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
This commit is contained in:
parent
6fe2e8977d
commit
2cfe5e0745
2 changed files with 36 additions and 1 deletions
30
tests/js/tglobal.nim
Normal file
30
tests/js/tglobal.nim
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
block global:
|
||||
proc getState(): int =
|
||||
var state0 {.global.}: int
|
||||
inc state0
|
||||
result = state0
|
||||
|
||||
for i in 0 ..< 3:
|
||||
doAssert getState() == i + 1
|
||||
|
||||
for i in 0 ..< 3:
|
||||
once:
|
||||
doAssert i == 0
|
||||
|
||||
|
||||
block threadvar:
|
||||
proc getThreadState0(): int =
|
||||
var state0 {.threadvar.}: int
|
||||
inc state0
|
||||
result = state0
|
||||
|
||||
for i in 0 ..< 3:
|
||||
doAssert getThreadState0() == i + 1
|
||||
|
||||
proc getThreadState1(): int =
|
||||
var state1 {.threadvar.}: int
|
||||
inc state1
|
||||
result = state1
|
||||
|
||||
for i in 0 ..< 3:
|
||||
doAssert getThreadState1() == i + 1
|
||||
Loading…
Add table
Add a link
Reference in a new issue