{
class SplittableString extends String {
slash(char, offset) {
if(arguments.length === 0) return this.slash("");
if(arguments.length === 1) return Number.isFinite(arguments[0]) ?
this.slash("", arguments[0]) : this.slash(arguments[0], 1);
var matches = Array.from(str.matchAll(char));
offset -= char.length;
if(offset < 0) offset += matches.length + char.length + (char === "" ? -1 : 0);
var index = matches[offset].index;
return [str.slice(0, index), str.slice(index + char.length)];
}
};
var str = new SplittableString('Lorem ipsum dolor sit amet');
console.log(str.slash(' ')); // -> [ 'lorem', 'ipsum dolor sit amet' ]
console.log(str.slash(' ',2)); // -> [ 'lorem ipsum', 'dolor sit amet' ]
console.log(str.slash(' ',-1)); // -> [ 'lorem ipsum dolor sit', 'amet' ]
console.log(str.slash(8)); // -> [ 'lorem ip', 'sum dolor sit amet' ]
console.log(str.slash(-3)); // -> [ 'lorem ipsum dolor sit a', 'met' ]
}