diff options
-rw-r--r-- | compiler/jsgen.nim | 6 | ||||
-rw-r--r-- | lib/posix/posix.nim | 2 |
2 files changed, 6 insertions, 2 deletions
diff --git a/compiler/jsgen.nim b/compiler/jsgen.nim index 6687e2e8e..96d8b3d11 100644 --- a/compiler/jsgen.nim +++ b/compiler/jsgen.nim @@ -1321,7 +1321,7 @@ proc genMagic(p: PProc, n: PNode, r: var TCompRes) = of mLengthSeq, mLengthOpenArray, mLengthArray: unaryExpr(p, n, r, "", "$1.length") of mHigh: - if skipTypes(n.sons[0].typ, abstractVar).kind == tyString: + if skipTypes(n.sons[1].typ, abstractVar).kind == tyString: unaryExpr(p, n, r, "", "($1.length-2)") else: unaryExpr(p, n, r, "", "($1.length-1)") @@ -1532,6 +1532,7 @@ proc gen(p: PProc, n: PNode, r: var TCompRes) = genSym(p, n, r) of nkCharLit..nkInt64Lit: r.res = toRope(n.intVal) + r.kind = resExpr of nkNilLit: if isEmptyType(n.typ): discard @@ -1539,8 +1540,10 @@ proc gen(p: PProc, n: PNode, r: var TCompRes) = r.typ = etyBaseIndex r.address = toRope"null" | toRope"nil" r.res = toRope"0" + r.kind = resExpr else: r.res = toRope"null" | toRope"nil" + r.kind = resExpr of nkStrLit..nkTripleStrLit: if skipTypes(n.typ, abstractVarRange).kind == tyString: useMagic(p, "cstrToNimstr") @@ -1556,6 +1559,7 @@ proc gen(p: PProc, n: PNode, r: var TCompRes) = if f > 0.0: r.res = toRope"Infinity" else: r.res = toRope"-Infinity" else: r.res = toRope(f.toStrMaxPrecision) + r.kind = resExpr of nkCallKinds: if (n.sons[0].kind == nkSym) and (n.sons[0].sym.magic != mNone): genMagic(p, n, r) diff --git a/lib/posix/posix.nim b/lib/posix/posix.nim index 8e66336c2..a5ee05abb 100644 --- a/lib/posix/posix.nim +++ b/lib/posix/posix.nim @@ -90,7 +90,7 @@ type d_ino*: Tino ## File serial number. d_name*: array [0..255, char] ## Name of entry. - Tflock* {.importc: "flock", final, pure, + Tflock* {.importc: "struct flock", final, pure, header: "<fcntl.h>".} = object ## flock type l_type*: cshort ## Type of lock; F_RDLCK, F_WRLCK, F_UNLCK. l_whence*: cshort ## Flag for starting offset. |