diff options
author | Silvio <stisa4@gmail.com> | 2017-03-15 10:33:37 +0100 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2017-03-15 10:33:37 +0100 |
commit | 51cd3bd86f73795056a051c05facb7b72685b204 (patch) | |
tree | dedcfdc2f1f4a1cdcb0c3692bde3af372e7ad443 /compiler | |
parent | ebb15505dd610074bb8900e6bacd775d6e064a7f (diff) | |
download | Nim-51cd3bd86f73795056a051c05facb7b72685b204.tar.gz |
Fixes #5062 (#5527); JS: holes in enums
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/jsgen.nim | 10 | ||||
-rw-r--r-- | compiler/jstypes.nim | 4 |
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) |