Fix jsgen bug with uninitialized seq (#12500) [backport]
This commit is contained in:
parent
9ccfcf5dd2
commit
4ac100c912
2 changed files with 21 additions and 1 deletions
|
|
@ -1169,7 +1169,7 @@ proc genArrayAddr(p: PProc, n: PNode, r: var TCompRes) =
|
||||||
first = firstOrd(p.config, typ.sons[0])
|
first = firstOrd(p.config, typ.sons[0])
|
||||||
if optBoundsCheck in p.options:
|
if optBoundsCheck in p.options:
|
||||||
useMagic(p, "chckIndx")
|
useMagic(p, "chckIndx")
|
||||||
r.res = "chckIndx($1, $2, $3.length+$2-1)-$2" % [b.res, rope(first), tmp]
|
r.res = "chckIndx($1, $2, ($3 != null ? $3.length : 0)+$2-1)-$2" % [b.res, rope(first), tmp]
|
||||||
elif first != 0:
|
elif first != 0:
|
||||||
r.res = "($1)-$2" % [b.res, rope(first)]
|
r.res = "($1)-$2" % [b.res, rope(first)]
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
20
tests/js/t12223.nim
Normal file
20
tests/js/t12223.nim
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
discard """
|
||||||
|
action: "run"
|
||||||
|
output: '''
|
||||||
|
caught
|
||||||
|
index out of bounds, the container is empty
|
||||||
|
'''
|
||||||
|
"""
|
||||||
|
|
||||||
|
proc fun() =
|
||||||
|
var z: seq[string]
|
||||||
|
discard z[4]
|
||||||
|
|
||||||
|
proc main()=
|
||||||
|
try:
|
||||||
|
fun()
|
||||||
|
except Exception as e:
|
||||||
|
echo "caught"
|
||||||
|
echo getCurrentExceptionMsg()
|
||||||
|
|
||||||
|
main()
|
||||||
Loading…
Add table
Add a link
Reference in a new issue