Rich-Harris / magic-string

Manipulate strings like a wizard
MIT License
2.34k stars 113 forks source link

Wrong mappings when `update` or `overwrite` end with new line #273

Closed dummdidumm closed 7 months ago

dummdidumm commented 7 months ago
const s = new MagicString('foobar');
s.update(2, 3, 'od\n');
s.update(4, 5, 'a\nnd\n');

does produce wrong mappings. When the string passed to update or overwrite ends with a new line, the mappings will contain two entries for column zero. This happens because in #261 the loop does not bail if the last line is empty, filling two lines with the same mapping. This is currently blocking Svelte language tools from bumping magic-string to the latest version.