Fixed string concatenation and other bugs in the JS backend. Fixed a small bug in the IRC module.

This commit is contained in:
dom96
2011-09-23 21:43:24 +01:00
parent 2359b8b107
commit 6deda5a973
9 changed files with 117 additions and 44 deletions

View File

@@ -228,7 +228,7 @@ proc cmp(x, y: string): int = return cmpStrings(x, y)
proc eqStrings(a, b: string): bool {.noStackFrame, compilerProc.} =
asm """
if (`a == `b`) return true;
if (`a` == `b`) return true;
if ((!`a`) || (!`b`)) return false;
var alen = `a`.length;
if (alen != `b`.length) return false;

23
lib/system/reprjs.nim Normal file
View File

@@ -0,0 +1,23 @@
#
#
# Nimrod's Runtime Library
# (c) Copyright 2011 Andreas Rumpf
#
# See the file "copying.txt", included in this
# distribution, for details about the copyright.
#
proc reprInt(x: int64): string {.compilerproc.} = return $x
proc reprEnum(e: int, typ: PNimType): string {.compilerRtl.} =
if ntfEnumHole notin typ.flags:
if e <% typ.node.len:
return $typ.node.sons[e].name
else:
# ugh we need a slow linear search:
var n = typ.node
var s = n.sons
for i in 0 .. n.len-1:
if s[i].offset == e: return $s[i].name
result = $e & " (invalid data!)"