zebzhao/indent.js

indent.js splits newlines incorrectly in internet explorer 11

Closed this issue · 1 comments

Problem

indent.js not working in internet explorer 11 due to the way lines are split. Specifically, the following line does not work correctly:

var lines = code.split(/[\r]?\n/gi);

Example

In Chrome, this "test\n".split(/[\r]?\n/gi) produces:

["test", ""]

In IE11, this "test\n".split(/[\r]?\n/gi) produces:

["t", "e", "s", "t", "  "]

Notes

Looks like there are a variety of issues with regular expressions in IE 11.

This seems to work in IE11 ("asdf\n" + "asdf\n" + "asdf\n").split("\n"), but I don't know if that works in all cases.

It looks like this is actually caused by a bug in the String.prototype.split polyfill from core-js.

See zloirock/core-js#751

Closing issue. Sorry for the false alarm!