* Added try/catch around regexp compilation

This commit is contained in:
Ruben Daniels 2012-05-07 17:45:48 -07:00
commit bce8bb378a

View file

@ -116,11 +116,12 @@ Search.SELECTION = 2;
if (!this.$options.needle)
return null;
if (this.$options.backwards) {
var iterator = this.$backwardMatchIterator(session);
} else {
iterator = this.$forwardMatchIterator(session);
}
var iterator = this.$options.backwards
? this.$backwardMatchIterator(session)
: this.$forwardMatchIterator(session);
if (!iterator)
return false;
var firstRange = null;
iterator.forEach(function(range) {
@ -143,11 +144,12 @@ Search.SELECTION = 2;
if (!options.needle)
return [];
if (options.backwards) {
var iterator = this.$backwardMatchIterator(session);
} else {
iterator = this.$forwardMatchIterator(session);
}
var iterator = options.backwards
? this.$backwardMatchIterator(session)
: this.$forwardMatchIterator(session);
if (!iterator)
return false;
var ignoreCursor = !options.start && options.wrap && options.scope == Search.ALL;
if (ignoreCursor)
@ -178,6 +180,9 @@ Search.SELECTION = 2;
**/
this.replace = function(input, replacement) {
var re = this.$assembleRegExp();
if (!re)
return;
var match = re.exec(input);
if (match && match[0].length == input.length) {
if (this.$options.regExp) {
@ -199,6 +204,9 @@ Search.SELECTION = 2;
**/
this.$forwardMatchIterator = function(session) {
var re = this.$assembleRegExp();
if (!re)
return false;
var self = this;
return {
@ -240,6 +248,9 @@ Search.SELECTION = 2;
**/
this.$backwardMatchIterator = function(session) {
var re = this.$assembleRegExp();
if (!re)
return false;
var self = this;
return {
@ -293,7 +304,13 @@ Search.SELECTION = 2;
modifier += "i";
}
var re = new RegExp(needle, modifier);
try {
var re = new RegExp(needle, modifier);
}
catch(e) {
return false;
}
return re;
};