原因是 parse 函数的 while 的判断条件提前结束,导致后续的 state === State.UnorderedListItem && c === '\n' 无法执行
while (i < str.length) {
...
else if (state === State.UnorderedListItem && c === '\n') {
resolve(new UnorderedListItem(listPrefix, popNodes()), new Blank(c))
i++
}
}
开发者你好,发现一个边界情况 BUG。
原因是 parse 函数的 while 的判断条件提前结束,导致后续的
state === State.UnorderedListItem && c === '\n'
无法执行由于 parse 的递归实现,会放大此 BUG 的影响: