diff --git a/test/runtime/samples/transition-js-each-keyed-unchanged/_config.js b/test/runtime/samples/transition-js-each-keyed-unchanged/_config.js
new file mode 100644
index 0000000000..b3a1882196
--- /dev/null
+++ b/test/runtime/samples/transition-js-each-keyed-unchanged/_config.js
@@ -0,0 +1,25 @@
+export default {
+ props: {
+ numbers: [1, 2, 3, 4, 5]
+ },
+
+ test({ assert, component, target, raf }) {
+ const divs1 = target.querySelectorAll('div');
+ assert.equal(divs1[0].foo, undefined);
+
+ component.numbers = [1, 2, 5, 4, 3];
+ const divs2 = target.querySelectorAll('div');
+
+ assert.equal(divs1[0], divs2[0]);
+ assert.equal(divs1[1], divs2[1]);
+ assert.equal(divs1[2], divs2[4]);
+ assert.equal(divs1[3], divs2[3]);
+ assert.equal(divs1[4], divs2[2]);
+
+ assert.equal(divs1[0].foo, undefined);
+ assert.equal(divs1[1].foo, undefined);
+ assert.equal(divs1[2].foo, undefined);
+ assert.equal(divs1[3].foo, undefined);
+ assert.equal(divs1[4].foo, undefined);
+ }
+};
\ No newline at end of file
diff --git a/test/runtime/samples/transition-js-each-keyed-unchanged/main.html b/test/runtime/samples/transition-js-each-keyed-unchanged/main.html
new file mode 100644
index 0000000000..ef2426c2db
--- /dev/null
+++ b/test/runtime/samples/transition-js-each-keyed-unchanged/main.html
@@ -0,0 +1,16 @@
+
+
+{#each numbers as num, i (num)}
+
{num}
+{/each}
\ No newline at end of file
diff --git a/test/runtime/samples/transition-js-each-unchanged/_config.js b/test/runtime/samples/transition-js-each-unchanged/_config.js
new file mode 100644
index 0000000000..9bd2206211
--- /dev/null
+++ b/test/runtime/samples/transition-js-each-unchanged/_config.js
@@ -0,0 +1,25 @@
+export default {
+ props: {
+ numbers: [1, 2, 3, 4, 5]
+ },
+
+ test({ assert, component, target, raf }) {
+ const divs1 = target.querySelectorAll('div');
+ assert.equal(divs1[0].foo, undefined);
+
+ component.numbers = [1, 2, 5, 4, 3];
+ const divs2 = target.querySelectorAll('div');
+
+ assert.equal(divs1[0], divs2[0]);
+ assert.equal(divs1[1], divs2[1]);
+ assert.equal(divs1[2], divs2[2]);
+ assert.equal(divs1[3], divs2[3]);
+ assert.equal(divs1[4], divs2[4]);
+
+ assert.equal(divs1[0].foo, undefined);
+ assert.equal(divs1[1].foo, undefined);
+ assert.equal(divs1[2].foo, undefined);
+ assert.equal(divs1[3].foo, undefined);
+ assert.equal(divs1[4].foo, undefined);
+ }
+};
\ No newline at end of file
diff --git a/test/runtime/samples/transition-js-each-unchanged/main.html b/test/runtime/samples/transition-js-each-unchanged/main.html
new file mode 100644
index 0000000000..d1cee7bd23
--- /dev/null
+++ b/test/runtime/samples/transition-js-each-unchanged/main.html
@@ -0,0 +1,16 @@
+
+
+{#each numbers as num, i}
+ {num}
+{/each}
\ No newline at end of file