23 #define _function(inline) function inline { return _##inline; }
47 _function(CPMakeRangeCopy(aRange))
55 _function(CPEmptyRange(aRange))
63 _function(CPMaxRange(aRange))
71 function CPEqualRanges(lhsRange,
rhsRange)
73 return ((lhsRange.location === rhsRange.location) && (lhsRange.length === rhsRange.length));
83 _function(CPLocationInRange(aLocation, aRange))
93 function CPUnionRange(lhsRange,
rhsRange)
95 var location = MIN(lhsRange.location, rhsRange.location);
97 return CPMakeRange(location, MAX(CPMaxRange(lhsRange), CPMaxRange(rhsRange)) - location);
109 if (CPMaxRange(lhsRange) < rhsRange.location || CPMaxRange(rhsRange) < lhsRange.location)
112 var location = MAX(lhsRange.location, rhsRange.location);
114 return CPMakeRange(location, MIN(CPMaxRange(lhsRange), CPMaxRange(rhsRange)) - location);
126 return (lhsRange.location <= rhsRange.location && CPMaxRange(lhsRange) >= CPMaxRange(rhsRange));
137 return "{" + aRange.location +
", " + aRange.length +
"}";
148 var comma = aString.indexOf(
',');
150 return { location:parseInt(aString.substr(1, comma - 1)), length:parseInt(aString.substring(comma + 1, aString.length)) };