diff options
author | shsnow23 <hsssnow23@users.noreply.github.com> | 2017-01-25 00:59:34 +0900 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2017-01-24 16:59:34 +0100 |
commit | c7e54eba91e31091a40dfa6d96a7a323db63b933 (patch) | |
tree | 0ccf196c4a384c661cf23dad95c4918ada05312e | |
parent | c54bffae5b4936a65461a0a84c9a0956702d0352 (diff) | |
download | Nim-c7e54eba91e31091a40dfa6d96a7a323db63b933.tar.gz |
fix genderef of jsgen (#5274)
-rw-r--r-- | compiler/jsgen.nim | 2 | ||||
-rw-r--r-- | tests/js/tderef.nim | 20 |
2 files changed, 21 insertions, 1 deletions
diff --git a/compiler/jsgen.nim b/compiler/jsgen.nim index fd21d17ef..34d78ea7c 100644 --- a/compiler/jsgen.nim +++ b/compiler/jsgen.nim @@ -1200,7 +1200,7 @@ proc genDeref(p: PProc, n: PNode, r: var TCompRes) = r.res = "$1[$2]" % [a.address, a.res] elif n.sons[0].kind == nkCall: let tmp = p.getTemp - r.res = "($1 = $2, $1[0][$1[1]])" % [tmp, a.res] + r.res = "($1 = $2, $1[0])[$1[1]]" % [tmp, a.res] else: internalError(n.info, "genDeref") diff --git a/tests/js/tderef.nim b/tests/js/tderef.nim new file mode 100644 index 000000000..ddb91bd42 --- /dev/null +++ b/tests/js/tderef.nim @@ -0,0 +1,20 @@ +discard """ + output: '''true +''' +""" + +import tables + +type EventStore = Table[string, seq[proc ()]] + +proc newEventStore(): EventStore = + initTable[string, seq[proc ()]]() + +proc register(store: var EventStore, name: string, callback: proc ()) = + if not store.hasKey(name): + store[name] = @[] + store[name].add(callback) + +var store = newEventStore() +store.register("test", proc () = echo "true") +store["test"][0]() |