From a76b74ed74c98eff41752fc9cb71676f527bab21 Mon Sep 17 00:00:00 2001 From: Yuriy Glukhov Date: Tue, 5 Jul 2016 22:43:59 +0300 Subject: [PATCH] Repr now works in js for enums starting with non-zero. --- compiler/jsgen.nim | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/compiler/jsgen.nim b/compiler/jsgen.nim index 8a631bb66e..d7aa7f0f49 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")