summary refs log tree commit diff stats
path: root/compiler
diff options
context:
space:
mode:
authoryglukhov <yuriy.glukhov@gmail.com>2015-05-26 16:00:48 +0300
committeryglukhov <yuriy.glukhov@gmail.com>2015-05-26 16:00:48 +0300
commitd3c4c7c52feec4d0c9deed0540f849166695ebbb (patch)
tree1602f8b33773d89c6ee8fb5914b0b7212cf85005 /compiler
parent77b010bd3695b5ec4169cb6c892a036f6af2711e (diff)
downloadNim-d3c4c7c52feec4d0c9deed0540f849166695ebbb.tar.gz
Fixes #2798
Diffstat (limited to 'compiler')
-rw-r--r--compiler/jsgen.nim7
1 files changed, 5 insertions, 2 deletions
diff --git a/compiler/jsgen.nim b/compiler/jsgen.nim
index 5c7071498..0f6323abc 100644
--- a/compiler/jsgen.nim
+++ b/compiler/jsgen.nim
@@ -880,7 +880,7 @@ proc genFieldAccess(p: PProc, n: PNode, r: var TCompRes) =
   if skipTypes(n.sons[0].typ, abstractVarRange).kind == tyTuple:
     r.res = "$1.Field$2" % [r.res, getFieldPosition(n.sons[1]).rope]
   else:
-    if n.sons[1].kind != nkSym: internalError(n.sons[1].info, "genFieldAddr")
+    if n.sons[1].kind != nkSym: internalError(n.sons[1].info, "genFieldAccess")
     var f = n.sons[1].sym
     if f.loc.r == nil: f.loc.r = mangleName(f)
     r.res = "$1.$2" % [r.res, f.loc.r]
@@ -970,7 +970,10 @@ proc genAddr(p: PProc, n: PNode, r: var TCompRes) =
   of nkCheckedFieldExpr:
     genCheckedFieldAddr(p, n, r)
   of nkDotExpr:
-    genFieldAddr(p, n.sons[0], r)
+    if mapType(n.typ) == etyBaseIndex:
+      genFieldAddr(p, n.sons[0], r)
+    else:
+      genFieldAccess(p, n.sons[0], r)
   of nkBracketExpr:
     var ty = skipTypes(n.sons[0].typ, abstractVarRange)
     if ty.kind in {tyRef, tyPtr}: ty = skipTypes(ty.lastSon, abstractVarRange)