xterm.js generates full row of characters before writeln output

While experimenting with xterm.js I made the follwing fiddle.

const divTerm = document.querySelector("#term");

const xterm = new Terminal({
cols: 100,
rows: 80,
cursorBlink: true
});

xterm.open(divTerm);
xterm.writeln("Hello World");

jsfiddle output

As you can see, I am only writing “Hello World” to my terminal.
However, the “Hello World” String is only displayed on the second row of the terminal. The row above is filled with ‘d’s, and I don’t understand where they are coming from.

The weird thing is, when I did the same thing on my test site instead on jsfiddle, the behaviour was the same, except the first row was filled with ‘s’ characters.

What’s going on here?