summary refs log tree commit diff stats
path: root/compiler
diff options
context:
space:
mode:
authorSilvio <stisa4@gmail.com>2017-03-15 10:33:37 +0100
committerAndreas Rumpf <rumpf_a@web.de>2017-03-15 10:33:37 +0100
commit51cd3bd86f73795056a051c05facb7b72685b204 (patch)
treededcfdc2f1f4a1cdcb0c3692bde3af372e7ad443 /compiler
parentebb15505dd610074bb8900e6bacd775d6e064a7f (diff)
downloadNim-51cd3bd86f73795056a051c05facb7b72685b204.tar.gz
Fixes #5062 (#5527); JS: holes in enums
Diffstat (limited to 'compiler')
-rw-r--r--compiler/jsgen.nim10
-rw-r--r--compiler/jstypes.nim4
2 files changed, 3 insertions, 11 deletions
diff --git a/compiler/jsgen.nim b/compiler/jsgen.nim
index 8f819686d..f5e8027b3 100644
--- a/compiler/jsgen.nim
+++ b/compiler/jsgen.nim
@@ -1634,16 +1634,8 @@ 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$3].name)" % [genTypeInfo(p, t), r.res, rope(offset)]
+    r.res = "cstrToNimstr($1.node.sons[$2].name)" % [genTypeInfo(p, t), r.res]
   else:
     # XXX:
     internalError(n.info, "genRepr: Not implemented")
diff --git a/compiler/jstypes.nim b/compiler/jstypes.nim
index b96a260b3..f49bd7668 100644
--- a/compiler/jstypes.nim
+++ b/compiler/jstypes.nim
@@ -104,10 +104,10 @@ proc genEnumInfo(p: PProc, typ: PType, name: Rope) =
     let field = typ.n.sons[i].sym
     if i > 0: add(s, ", " & tnl)
     let extName = if field.ast == nil: field.name.s else: field.ast.strVal
-    addf(s, "{kind: 1, offset: $1, typ: $2, name: $3, len: 0, sons: null}",
+    addf(s, "\"$1\": {kind: 1, offset: $1, typ: $2, name: $3, len: 0, sons: null}",
          [rope(field.position), name, makeJSString(extName)])
   var n = ("var NNI$1 = {kind: 2, offset: 0, typ: null, " &
-      "name: null, len: $2, sons: [$3]};$n") % [rope(typ.id), rope(length), s]
+      "name: null, len: $2, sons: {$3}};$n") % [rope(typ.id), rope(length), s]
   s = ("var $1 = {size: 0, kind: $2, base: null, node: null, " &
        "finalizer: null};$n") % [name, rope(ord(typ.kind))]
   prepend(p.g.typeInfo, s)