+$b = watch { delete $a[4] } { set => 1 }, 'delete';
+is $b, 'd', 'array: delete correctly';
+
+$b = watch { @a } { len => 1 }, 'length @';
+is $b, 3, 'array: length @ correctly';
+
+# $b has to be set inside the block for the test to pass on 5.8.3 and lower
+watch { $b = $#a } { len => 1 }, 'length $#';
+is $b, 2, 'array: length $# correctly';
+
+watch { push @a, 'x'; () } # push looks at the static context
+ { set => 1, (len => 1) x !VMG_COMPAT_ARRAY_PUSH_NOLEN_VOID },
+ 'push (void)';
+
+$b = watch { push @a, 'y' }
+ { set => 1, (len => 1) x !VMG_COMPAT_ARRAY_PUSH_NOLEN },
+ 'push (scalar)';
+is $b, 5, 'array: push (scalar) correctly';
+
+$b = watch { pop @a } { set => 1, len => 1 }, 'pop';