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
parent 237085db5d
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])