Fixed insert for nil seq in js (#10068)

This commit is contained in:
Yuriy Glukhov 2018-12-21 23:45:20 +02:00 • committed by Andreas Rumpf
commit 39a8ab469a
2 changed files with 33 additions and 1 deletions

View file

@ -1692,7 +1692,7 @@ proc insert*[T](x: var seq[T], item: T, i = 0.Natural) {.noSideEffect.} =
else:
when defined(js):
var it : T
{.emit: "`x`.splice(`i`, 0, `it`);".}
{.emit: "`x` = `x` || []; `x`.splice(`i`, 0, `it`);".}
else:
defaultImpl()
x[i] = item

View file

@ -20,3 +20,35 @@ proc onButtonClick(inputElement: string) {.exportc.} =
onButtonClick(inputElement)
block:
var s: string
s.add("hi")
doAssert(s == "hi")
block:
var s: string
s.insert("hi", 0)
doAssert(s == "hi")
block:
var s: string
s.setLen(2)
s[0] = 'h'
s[1] = 'i'
doAssert(s == "hi")
block:
var s: seq[int]
s.setLen(2)
doAssert(s == @[0, 0])
block:
var s: seq[int]
s.insert(2, 0)
doAssert(s == @[2])
block:
var s: seq[int]
s.add(2)
doAssert(s == @[2])