* Added try/catch around regexp compilation
This commit is contained in:
parent
e2d5b1d01b
commit
bce8bb378a
1 changed files with 28 additions and 11 deletions
|
|
@ -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;
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue