Skip to content

Commit f891501

Browse files
skippednotetaylorzane
authored andcommitted
fix(5018): compare wholeText instead of data (sveltejs#5028)
1 parent 901f596 commit f891501

File tree

4 files changed

+23
-2
lines changed

4 files changed

+23
-2
lines changed

src/runtime/internal/dev.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ export function dataset_dev(node: HTMLElement, property: string, value?: any) {
7373

7474
export function set_data_dev(text, data) {
7575
data = '' + data;
76-
if (text.data === data) return;
76+
if (text.wholeText === data) return;
7777

7878
dispatch_dev("SvelteDOMSetData", { node: text, data });
7979
text.data = data;

src/runtime/internal/dom.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ export function claim_space(nodes) {
193193

194194
export function set_data(text, data) {
195195
data = '' + data;
196-
if (text.data !== data) text.data = data;
196+
if (text.wholeText !== data) text.data = data;
197197
}
198198

199199
export function set_input_value(input, value) {
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
export default {
2+
html: `
3+
<div contenteditable=""></div>
4+
`,
5+
6+
async test({ assert, component, target, window }) {
7+
const div = target.querySelector('div');
8+
const text = window.document.createTextNode('a');
9+
div.insertBefore(text, null);
10+
const event = new window.InputEvent('input');
11+
await div.dispatchEvent(event);
12+
13+
assert.equal(div.textContent, 'a');
14+
}
15+
};
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<script>
2+
let text = '';
3+
const updater = (event) => {text = event.target.textContent}
4+
</script>
5+
6+
<div contenteditable on:input={updater}>{text}</div>

0 commit comments

Comments
 (0)