diff --git a/test/runtime/samples/array-rest-is-array-or-object/_config.js b/test/runtime/samples/array-rest-is-array-or-object/_config.js
new file mode 100644
index 0000000000..c971e109ce
--- /dev/null
+++ b/test/runtime/samples/array-rest-is-array-or-object/_config.js
@@ -0,0 +1,12 @@
+export default {
+ html: `
+
1
+ 2
+ 3
+ 5
+ 10
+ 20
+ 30
+ 6
+ `
+};
diff --git a/test/runtime/samples/array-rest-is-array-or-object/main.svelte b/test/runtime/samples/array-rest-is-array-or-object/main.svelte
new file mode 100644
index 0000000000..fb3a5b7d85
--- /dev/null
+++ b/test/runtime/samples/array-rest-is-array-or-object/main.svelte
@@ -0,0 +1,15 @@
+
+
+{first}
+{second}
+{third}
+{fifth}
+
+{one}
+{two}
+{three}
+{length}
+
diff --git a/test/runtime/samples/destructured-props-4/A.svelte b/test/runtime/samples/destructured-props-4/A.svelte
new file mode 100644
index 0000000000..ab5e6b7689
--- /dev/null
+++ b/test/runtime/samples/destructured-props-4/A.svelte
@@ -0,0 +1,25 @@
+
+
+
+a: {a},
+b: {typeof b},
+c: {c},
+d_one: {d_one},
+d_three: {$d_three},
+length: {length},
+f: {f},
+g: {g},
+e: {typeof e},
+e_one: {e_one},
+A: {A},
+C: {C}
+
+{JSON.stringify(THING)}
diff --git a/test/runtime/samples/destructured-props-4/_config.js b/test/runtime/samples/destructured-props-4/_config.js
new file mode 100644
index 0000000000..2c48ac5b3a
--- /dev/null
+++ b/test/runtime/samples/destructured-props-4/_config.js
@@ -0,0 +1,9 @@
+export default {
+ html: `
+ a: 1, b: undefined, c: 2, d_one: 3, d_three: 5, length: 2, f: undefined, g: 9, e: undefined, e_one: 6, A: 1, C: 2
+ {"a":1,"b":{"c":2,"d":[3,4,{},6,7]},"e":[6],"h":8}
+
+ a: a, b: undefined, c: 2, d_one: d_one, d_three: 5, length: 7, f: f, g: g, e: undefined, e_one: 6, A: 1, C: 2
+ {"a":1,"b":{"c":2,"d":[3,4,{},6,7]},"e":[6],"h":8}
+ `
+};
diff --git a/test/runtime/samples/destructured-props-4/main.svelte b/test/runtime/samples/destructured-props-4/main.svelte
new file mode 100644
index 0000000000..cc1a31f542
--- /dev/null
+++ b/test/runtime/samples/destructured-props-4/main.svelte
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/test/runtime/samples/destructured-props-5/A.svelte b/test/runtime/samples/destructured-props-5/A.svelte
new file mode 100644
index 0000000000..898ce5aa3d
--- /dev/null
+++ b/test/runtime/samples/destructured-props-5/A.svelte
@@ -0,0 +1,23 @@
+
+
+
+ x: {x}, list_two_a: {list_two_a}, list_two_b: {list_two_b}, y: {y}, l: {l}, m: {m},
+ n: {n}, o: {o}, p: {p}, q: {$q}, r: {$r}, s: {s}
+
+{JSON.stringify(LIST)}
diff --git a/test/runtime/samples/destructured-props-5/_config.js b/test/runtime/samples/destructured-props-5/_config.js
new file mode 100644
index 0000000000..6c8ca89216
--- /dev/null
+++ b/test/runtime/samples/destructured-props-5/_config.js
@@ -0,0 +1,19 @@
+export default {
+ html: `
+ x: 1, list_two_a: 4, list_two_b: 5, y: 3, l: 1, m: 2, n: 4, o: 5, p: 5, q: 6, r: 7, s: 1
+ [1,2,3,{"a":4},[5,{},{},8]]
+
x: 1, list_two_a: 4, list_two_b: 5, y: 3, l: l, m: m, n: n, o: o, p: p, q: q, r: r, s: s
+ [1,2,3,{"a":4},[5,{},{},8]]
+ `,
+
+ async test({ component, assert, target }) {
+ await component.update();
+
+ assert.htmlEqual(target.innerHTML, `
+ x: 1, list_two_a: 4, list_two_b: 5, y: 3, l: 1, m: 2, n: 4, o: 5, p: 5, q: 6, r: 7, s: 1
+ [1,2,3,{"a":4},[5,{},{},8]]
+
x: 1, list_two_a: 4, list_two_b: 5, y: 3, l: LL, m: MM, n: NN, o: OO, p: PP, q: QQ, r: RR, s: SS
+ [1,2,3,{"a":4},[5,{},{},8]]
+ `);
+ }
+};
diff --git a/test/runtime/samples/destructured-props-5/main.svelte b/test/runtime/samples/destructured-props-5/main.svelte
new file mode 100644
index 0000000000..a8b9e8a704
--- /dev/null
+++ b/test/runtime/samples/destructured-props-5/main.svelte
@@ -0,0 +1,36 @@
+
+
+
+
+