summary refs log tree commit diff stats
path: root/tests/js/tcopying.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tests/js/tcopying.nim')
-rw-r--r--tests/js/tcopying.nim47
1 files changed, 45 insertions, 2 deletions
diff --git a/tests/js/tcopying.nim b/tests/js/tcopying.nim
index 387df9cd3..306d25090 100644
--- a/tests/js/tcopying.nim
+++ b/tests/js/tcopying.nim
@@ -2,6 +2,11 @@ discard """
   output: '''123
 2 9
 2 9
+1 124
+true false
+100 300 100
+1
+1
 '''
 """
 
@@ -10,7 +15,7 @@ type MyArray = array[1, int]
 proc changeArray(a: var MyArray) =
     a = [123]
 
-var a : MyArray
+var a: MyArray
 changeArray(a)
 echo a[0]
 
@@ -30,8 +35,46 @@ block:
         ary2: array[3, int]
 
     let ary1 = [1, 2, 3]
-    var obj = TestObj(ary2:ary1)
+    var obj = TestObj(ary2: ary1)
 
     obj.ary2[1] = 9
 
     echo ary1[1], " ", obj.ary2[1]
+
+block:
+    type TestObj = object
+        x, y: int
+
+    let obj = TestObj(x: 1, y: 2)
+    var s = @[obj]
+    s[0].x += 123
+    echo obj.x, " ", s[0].x
+
+block:
+    var nums = {1, 2, 3, 4}
+    let obj = (n: nums)
+    nums.incl 5
+    echo (5 in nums), " ", (5 in obj.n)
+
+block:
+    let tup1 = (a: 100)
+    var tup2 = (t: (t2: tup1))
+    var tup3 = tup1
+    tup2.t.t2.a = 300
+    echo tup1.a, " ", tup2.t.t2.a, " ", tup3.a
+
+block:
+    proc foo(arr: array[2, int]) =
+        var s = @arr
+        s[0] = 500
+
+    var nums = [1, 2]
+    foo(nums)
+    echo nums[0]
+
+proc bug9674 =
+  var b = @[1,2,3]
+  var a = move(b)
+  echo a[0]
+
+bug9674()