diff options
author | Yuriy Glukhov <yuriy.glukhov@gmail.com> | 2015-12-16 15:25:58 +0200 |
---|---|---|
committer | Yuriy Glukhov <yuriy.glukhov@gmail.com> | 2015-12-16 15:25:58 +0200 |
commit | 62422b93c62b5cbd83216369a00ba9ecf1311c0b (patch) | |
tree | 69bc809ed36f13d0f12b431102ca59a453a6d449 | |
parent | 31ebb11d73f7ad58afc497f20d9723503b83ca75 (diff) | |
download | Nim-62422b93c62b5cbd83216369a00ba9ecf1311c0b.tar.gz |
Fixed copying of nil seq in JS
-rw-r--r-- | lib/system/jssys.nim | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/lib/system/jssys.nim b/lib/system/jssys.nim index 54c6796c9..5bac54772 100644 --- a/lib/system/jssys.nim +++ b/lib/system/jssys.nim @@ -533,15 +533,20 @@ proc nimCopy(dest, src: JSRef, ti: PNimType): JSRef = nimCopyAux(result, src, ti.node) of tySequence, tyArrayConstr, tyOpenArray, tyArray: asm """ - if (`dest` === null || `dest` === undefined) { - `dest` = new Array(`src`.length); + if (`src` === null) { + `result` = null; } else { - `dest`.length = `src`.length; - } - `result` = `dest`; - for (var i = 0; i < `src`.length; ++i) { - `result`[i] = nimCopy(`result`[i], `src`[i], `ti`.base); + if (`dest` === null || `dest` === undefined) { + `dest` = new Array(`src`.length); + } + else { + `dest`.length = `src`.length; + } + `result` = `dest`; + for (var i = 0; i < `src`.length; ++i) { + `result`[i] = nimCopy(`result`[i], `src`[i], `ti`.base); + } } """ of tyString: |