PHP codegen improvements
This commit is contained in:
parent
6e6c15081d
commit
746132d696
3 changed files with 6 additions and 3 deletions
|
|
@ -981,7 +981,7 @@ proc genArrayAccess(p: PProc, n: PNode, r: var TCompRes) =
|
||||||
r.res = "nimAt($1, $2)" % [r.address, r.res]
|
r.res = "nimAt($1, $2)" % [r.address, r.res]
|
||||||
elif ty.kind in {tyString, tyCString}:
|
elif ty.kind in {tyString, tyCString}:
|
||||||
# XXX this needs to be more like substr($1,$2)
|
# XXX this needs to be more like substr($1,$2)
|
||||||
r.res = "ord($1[$2])" % [r.address, r.res]
|
r.res = "ord(@$1[$2])" % [r.address, r.res]
|
||||||
else:
|
else:
|
||||||
r.res = "$1[$2]" % [r.address, r.res]
|
r.res = "$1[$2]" % [r.address, r.res]
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -2163,7 +2163,7 @@ proc `&` *[T](x: T, y: seq[T]): seq[T] {.noSideEffect.} =
|
||||||
result[i+1] = y[i]
|
result[i+1] = y[i]
|
||||||
|
|
||||||
when not defined(nimscript):
|
when not defined(nimscript):
|
||||||
when not defined(JS):
|
when not defined(JS) or defined(nimphp):
|
||||||
proc seqToPtr[T](x: seq[T]): pointer {.inline, nosideeffect.} =
|
proc seqToPtr[T](x: seq[T]): pointer {.inline, nosideeffect.} =
|
||||||
result = cast[pointer](x)
|
result = cast[pointer](x)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -121,6 +121,9 @@ proc raiseException(e: ref Exception, ename: cstring) {.
|
||||||
when not defined(noUnhandledHandler):
|
when not defined(noUnhandledHandler):
|
||||||
if excHandler == 0:
|
if excHandler == 0:
|
||||||
unhandledException(e)
|
unhandledException(e)
|
||||||
|
when defined(nimphp):
|
||||||
|
asm """throw new Exception($`e`["message"]);"""
|
||||||
|
else:
|
||||||
asm "throw `e`;"
|
asm "throw `e`;"
|
||||||
|
|
||||||
proc reraiseException() {.compilerproc, asmNoStackFrame.} =
|
proc reraiseException() {.compilerproc, asmNoStackFrame.} =
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue