diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2015-06-23 14:39:19 +0200 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2015-06-23 14:39:19 +0200 |
commit | 5f371e1504a7a0cc18262b4b7e2ad55de3ab8325 (patch) | |
tree | 1a741f8c1950264f6579d27b20fb6b5efb3cb645 | |
parent | 68f583ddb7a3e1a9fe8d004fef199d3e1c0bb342 (diff) | |
parent | 0069308b22d8754627a74478062870edc7d51ab4 (diff) | |
download | Nim-5f371e1504a7a0cc18262b4b7e2ad55de3ab8325.tar.gz |
Merge pull request #2975 from yglukhov/js-init-list-fix
JS object initialiser fix.
-rw-r--r-- | compiler/jsgen.nim | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/compiler/jsgen.nim b/compiler/jsgen.nim index ede759426..87408f395 100644 --- a/compiler/jsgen.nim +++ b/compiler/jsgen.nim @@ -1435,23 +1435,22 @@ proc genTupleConstr(p: PProc, n: PNode, r: var TCompRes) = r.res.add("}") proc genObjConstr(p: PProc, n: PNode, r: var TCompRes) = - # XXX inheritance? var a: TCompRes - r.res = rope("{") r.kind = resExpr + var initList : Rope var fieldIDs = initIntSet() for i in countup(1, sonsLen(n) - 1): - if i > 1: add(r.res, ", ") + if i > 1: add(initList, ", ") var it = n.sons[i] internalAssert it.kind == nkExprColonExpr gen(p, it.sons[1], a) var f = it.sons[0].sym if f.loc.r == nil: f.loc.r = mangleName(f) fieldIDs.incl(f.id) - addf(r.res, "$#: $#" | "$# = $#" , [f.loc.r, a.res]) + addf(initList, "$#: $#" | "$# = $#" , [f.loc.r, a.res]) let t = skipTypes(n.typ, abstractInst + skipPtrs) - createObjInitList(p, t, fieldIDs, r.res) - r.res.add("}") + createObjInitList(p, t, fieldIDs, initList) + r.res = "{$1}" % [initList] proc genConv(p: PProc, n: PNode, r: var TCompRes) = var dest = skipTypes(n.typ, abstractVarRange) |