summary refs log tree commit diff stats
path: root/compiler
diff options
context:
space:
mode:
authorYuriy Glukhov <yuriy.glukhov@gmail.com>2016-07-05 22:43:59 +0300
committerYuriy Glukhov <yuriy.glukhov@gmail.com>2016-07-05 22:43:59 +0300
commita76b74ed74c98eff41752fc9cb71676f527bab21 (patch)
tree8d3fc91f0f4c3d1ac1c283d1cd8bc8ab45840998 /compiler
parent9a54834bf43394106b1269a76f9e0ed981c330cc (diff)
downloadNim-a76b74ed74c98eff41752fc9cb71676f527bab21.tar.gz
Repr now works in js for enums starting with non-zero.
Diffstat (limited to 'compiler')
-rw-r--r--compiler/jsgen.nim10
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")