diff options
author | Yuriy Glukhov <yuriy.glukhov@gmail.com> | 2016-07-05 22:43:59 +0300 |
---|---|---|
committer | Yuriy Glukhov <yuriy.glukhov@gmail.com> | 2016-07-05 22:43:59 +0300 |
commit | a76b74ed74c98eff41752fc9cb71676f527bab21 (patch) | |
tree | 8d3fc91f0f4c3d1ac1c283d1cd8bc8ab45840998 /compiler | |
parent | 9a54834bf43394106b1269a76f9e0ed981c330cc (diff) | |
download | Nim-a76b74ed74c98eff41752fc9cb71676f527bab21.tar.gz |
Repr now works in js for enums starting with non-zero.
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/jsgen.nim | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/compiler/jsgen.nim b/compiler/jsgen.nim index 8a631bb66..d7aa7f0f4 100644 --- a/compiler/jsgen.nim +++ b/compiler/jsgen.nim @@ -1557,8 +1557,16 @@ proc genRepr(p: PProc, n: PNode, r: var TCompRes) = of tyEnum, tyOrdinal: gen(p, n.sons[1], r) useMagic(p, "cstrToNimstr") + var offset = "" + if t.kind == tyEnum: + let firstFieldOffset = t.n.sons[0].sym.position + if firstFieldOffset < 0: + offset = "+" & $(-firstFieldOffset) + elif firstFieldOffset > 0: + offset = "-" & $firstFieldOffset + r.kind = resExpr - r.res = "cstrToNimstr($1.node.sons[$2].name)" % [genTypeInfo(p, t), r.res] + r.res = "cstrToNimstr($1.node.sons[$2$3].name)" % [genTypeInfo(p, t), r.res, rope(offset)] else: # XXX: internalError(n.info, "genRepr: Not implemented") |