mirror of
https://git.tt-rss.org/git/tt-rss.git
synced 2025-12-13 17:45:55 +00:00
build custom layer of Dojo to speed up loading of tt-rss (refs #293)
This commit is contained in:
@@ -5,28 +5,71 @@
|
||||
*/
|
||||
|
||||
|
||||
if(!dojo._hasResource["dojo.regexp"]){
|
||||
dojo._hasResource["dojo.regexp"]=true;
|
||||
if(!dojo._hasResource["dojo.regexp"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
|
||||
dojo._hasResource["dojo.regexp"] = true;
|
||||
dojo.provide("dojo.regexp");
|
||||
dojo.regexp.escapeString=function(_1,_2){
|
||||
return _1.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g,function(ch){
|
||||
if(_2&&_2.indexOf(ch)!=-1){
|
||||
return ch;
|
||||
}
|
||||
return "\\"+ch;
|
||||
});
|
||||
|
||||
/*=====
|
||||
dojo.regexp = {
|
||||
// summary: Regular expressions and Builder resources
|
||||
};
|
||||
dojo.regexp.buildGroupRE=function(_3,re,_4){
|
||||
if(!(_3 instanceof Array)){
|
||||
return re(_3);
|
||||
=====*/
|
||||
|
||||
dojo.regexp.escapeString = function(/*String*/str, /*String?*/except){
|
||||
// summary:
|
||||
// Adds escape sequences for special characters in regular expressions
|
||||
// except:
|
||||
// a String with special characters to be left unescaped
|
||||
|
||||
return str.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, function(ch){
|
||||
if(except && except.indexOf(ch) != -1){
|
||||
return ch;
|
||||
}
|
||||
return "\\" + ch;
|
||||
}); // String
|
||||
}
|
||||
var b=[];
|
||||
for(var i=0;i<_3.length;i++){
|
||||
b.push(re(_3[i]));
|
||||
|
||||
dojo.regexp.buildGroupRE = function(/*Object|Array*/arr, /*Function*/re, /*Boolean?*/nonCapture){
|
||||
// summary:
|
||||
// Builds a regular expression that groups subexpressions
|
||||
// description:
|
||||
// A utility function used by some of the RE generators. The
|
||||
// subexpressions are constructed by the function, re, in the second
|
||||
// parameter. re builds one subexpression for each elem in the array
|
||||
// a, in the first parameter. Returns a string for a regular
|
||||
// expression that groups all the subexpressions.
|
||||
// arr:
|
||||
// A single value or an array of values.
|
||||
// re:
|
||||
// A function. Takes one parameter and converts it to a regular
|
||||
// expression.
|
||||
// nonCapture:
|
||||
// If true, uses non-capturing match, otherwise matches are retained
|
||||
// by regular expression. Defaults to false
|
||||
|
||||
// case 1: a is a single value.
|
||||
if(!(arr instanceof Array)){
|
||||
return re(arr); // String
|
||||
}
|
||||
|
||||
// case 2: a is an array
|
||||
var b = [];
|
||||
for(var i = 0; i < arr.length; i++){
|
||||
// convert each elem to a RE
|
||||
b.push(re(arr[i]));
|
||||
}
|
||||
|
||||
// join the REs as alternatives in a RE group.
|
||||
return dojo.regexp.group(b.join("|"), nonCapture); // String
|
||||
}
|
||||
return dojo.regexp.group(b.join("|"),_4);
|
||||
};
|
||||
dojo.regexp.group=function(_5,_6){
|
||||
return "("+(_6?"?:":"")+_5+")";
|
||||
};
|
||||
|
||||
dojo.regexp.group = function(/*String*/expression, /*Boolean?*/nonCapture){
|
||||
// summary:
|
||||
// adds group match to expression
|
||||
// nonCapture:
|
||||
// If true, uses non-capturing match, otherwise matches are retained
|
||||
// by regular expression.
|
||||
return "(" + (nonCapture ? "?:":"") + expression + ")"; // String
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user