bugfixes mostly JS related

This commit is contained in:
Araq
2013-05-01 14:48:40 +02:00
parent eaeb26f003
commit 56045ad7ff
10 changed files with 37 additions and 20 deletions

View File

@@ -867,8 +867,9 @@ template `=~`*(s: string, pattern: TPeg): bool =
## else:
## echo("syntax error")
##
bind maxSubpatterns
when not definedInScope(matches):
var matches {.inject.}: array[0..pegs.maxSubpatterns-1, string]
var matches {.inject.}: array[0..maxSubpatterns-1, string]
match(s, pattern, matches)
# ------------------------- more string handling ------------------------------
@@ -1740,8 +1741,9 @@ when isMainModule:
assert matches[0] == "a"
else:
assert false
if match("abcdefg", peg"c {d} ef {g}", matches, 2):
var matches: array[0..maxSubpatterns-1, string]
if match("abcdefg", peg"c {d} ef {g}", matches, 2):
assert matches[0] == "d"
assert matches[1] == "g"
else:

View File

@@ -463,6 +463,8 @@ when not defined(JS):
elif defined(JS):
proc newDate(): TTime {.importc: "new Date".}
proc internGetTime(): TTime {.importc: "new Date", tags: [].}
proc newDate(value: float): TTime {.importc: "new Date".}
proc newDate(value: string): TTime {.importc: "new Date".}
proc getTime(): TTime =
@@ -494,7 +496,7 @@ elif defined(JS):
result.yearday = 0
proc TimeInfoToTime*(timeInfo: TTimeInfo): TTime =
result = getTime()
result = internGetTime()
result.setSeconds(timeInfo.second)
result.setMinutes(timeInfo.minute)
result.setHours(timeInfo.hour)

View File

@@ -620,4 +620,9 @@ proc isObj(obj, subclass: PNimType): bool {.compilerproc.} =
x = x.base
return true
proc addChar(x: string, c: char) {.compilerproc, noStackFrame.} =
asm """
`x`[`x`.length-1] = `c`; `x`.push(0);
"""
{.pop.}