summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorDominik Picheta <dominikpicheta@googlemail.com>2015-12-16 14:07:01 +0000
committerDominik Picheta <dominikpicheta@googlemail.com>2015-12-16 14:07:01 +0000
commit39f78ae4f10f015c8b2b9dfdd139628a7f7b4101 (patch)
treeec7e069a30fe7ed53d2ede2ad53ad1c371282ed2
parentfe8b07876c9bb8128bfdd4129d57e6cdfb72b310 (diff)
parent62422b93c62b5cbd83216369a00ba9ecf1311c0b (diff)
downloadNim-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.nim19
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: