From https://developer.mozilla.org/en-US/docs/Web/API/document.execCommand
Adds an HTML block-style tag around the line containing the current selection, replacing the block element containing the line if one exists (in Firefox, BLOCKQUOTE is the exception - it will wrap any containing block element). Requires a tag-name string to be passed in as a value argument. Virtually all block style tags can be used (eg. "H1", "P", "DL", "BLOCKQUOTE"). (Internet Explorer supports only heading tags H1 - H6, ADDRESS, and PRE, which must also include the tag delimiters < >, such as "".)
The <li>
element represents a list of items, therefor the formatBlock comand will wrap it the list with the Block elment (p, h1,...). Since this is not allowed for the li element, the list is split into multiple lists and the "list to format" is wrapped with the Block element.
Since your code triggers always on the li element, this is done again and again, because you are executing a formatingcomand, which is not intended to be used on this kind of element. @Steven Vanden Broucke posted a solution, how you can avoid this.
Since it is not exactly specified how this should be handled, I suggest doing that.
Edit:
I created a bug report at chromium for this issue. ( https://code.google.com/p/chromium/issues/detail?id=372925&thanks=372925&ts=1400009358 )