diff --git a/test/runtime/samples/binding-input-text-undefined/_config.js b/test/runtime/samples/binding-input-text-undefined/_config.js
new file mode 100644
index 0000000000..009e1b37ba
--- /dev/null
+++ b/test/runtime/samples/binding-input-text-undefined/_config.js
@@ -0,0 +1,30 @@
+export default {
+ html: `
+
+ `,
+
+ ssrHtml: `
+
+ `,
+
+ async test({ assert, component, target, window }) {
+ const input = target.querySelector('input');
+ assert.equal(input.value, '');
+
+ component.x = null;
+ assert.equal(input.value, '');
+
+ component.x = undefined;
+ assert.equal(input.value, '');
+
+ component.x = 'string';
+ component.x = undefined;
+ assert.equal(input.value, '');
+
+ component.x = 0;
+ assert.equal(input.value, '0');
+
+ component.x = undefined;
+ assert.equal(input.value, '');
+ },
+};
diff --git a/test/runtime/samples/binding-input-text-undefined/main.svelte b/test/runtime/samples/binding-input-text-undefined/main.svelte
new file mode 100644
index 0000000000..b4c2a84fd2
--- /dev/null
+++ b/test/runtime/samples/binding-input-text-undefined/main.svelte
@@ -0,0 +1,5 @@
+
+
+
\ No newline at end of file