JSFiddle - React, Tailwind, and code Playground
JavaScript
(function () {
console.time('test');
for (var i = 0; i < 100000; i++) {
var fn = new Function ('str',
"var nch;" +
"if (str.indexOf('!.') === -1) {" +
"return str.split('.');" +
"}" +
"var path = []," +
"item = ''," +
"ch = str.charAt(0)," +
"pch;" +
"for (var i = 0, l = str.length; i < l; i++) {" +
"nch = str.charAt(i + 1);" +
"if (ch === '.' && pch === '!') {" +
"item += '.';" +
"} else if (ch === '.' && pch !== '!') {" +
"path.push(item);" +
"item = '';" +
"} else if (ch !== '!' || nch !== '.') {" +
"item += ch;" +
"}" +
"pch = ch;" +
"ch = nch;" +
"}" +
"path.push(item);" +
"return path;");
}
fn('asdf');
console.timeEnd('test');
})();