fixes openarray views default values in JS (#23607)

This commit is contained in:
ringabout
2024-05-15 00:07:47 +08:00
committed by GitHub
parent 04f3df4c87
commit 0fcd838fd9
2 changed files with 17 additions and 2 deletions

View File

@@ -1241,7 +1241,7 @@ proc needsNoCopy(p: PProc; y: PNode): bool =
return y.kind in nodeKindsNeedNoCopy or
((mapType(y.typ) != etyBaseIndex) and
(skipTypes(y.typ, abstractInst).kind in
{tyRef, tyPtr, tyLent, tyVar, tyCstring, tyProc, tyOwned} + IntegralTypes))
{tyRef, tyPtr, tyLent, tyVar, tyCstring, tyProc, tyOwned, tyOpenArray} + IntegralTypes))
proc genAsgnAux(p: PProc, x, y: PNode, noCopyNeeded: bool) =
var a, b: TCompRes = default(TCompRes)
@@ -1966,7 +1966,7 @@ proc createVar(p: PProc, typ: PType, indirect: bool): Rope =
result = putToSeq("null", indirect)
of tySequence, tyString:
result = putToSeq("[]", indirect)
of tyCstring, tyProc:
of tyCstring, tyProc, tyOpenArray:
result = putToSeq("null", indirect)
of tyStatic:
if t.n != nil:

15
tests/views/tviews2.nim Normal file
View File

@@ -0,0 +1,15 @@
discard """
targets: "c js"
"""
{.experimental: "views".}
type
Foo = object
id: openArray[char]
proc foo(): Foo =
var source = "1245"
result = Foo(id: source.toOpenArray(0, 1))
doAssert foo().id == @['1', '2']