diff options
author | Dominik Picheta <dominikpicheta@googlemail.com> | 2015-12-16 14:07:01 +0000 |
---|---|---|
committer | Dominik Picheta <dominikpicheta@googlemail.com> | 2015-12-16 14:07:01 +0000 |
commit | 39f78ae4f10f015c8b2b9dfdd139628a7f7b4101 (patch) | |
tree | ec7e069a30fe7ed53d2ede2ad53ad1c371282ed2 | |
parent | fe8b07876c9bb8128bfdd4129d57e6cdfb72b310 (diff) | |
parent | 62422b93c62b5cbd83216369a00ba9ecf1311c0b (diff) | |
download | Nim-39f78ae4f10f015c8b2b9dfdd139628a7f7b4101.tar.gz |
Merge pull request #3649 from yglukhov/nil-seq-copy
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: |