MCPcopy Create free account
hub / github.com/RubyLouvre/anu / processCharacterClass

Function processCharacterClass

test/babel.js:57317–57353  ·  view source on GitHub ↗
(characterClassItem)

Source from the content-addressed store, hash-verified

57315 var ignoreCase = false;
57316 var unicode = false;
57317 function processCharacterClass(characterClassItem) {
57318 var set = regenerate();
57319 var body = characterClassItem.body.forEach(function (item) {
57320 switch (item.type) {
57321 case 'value':
57322 set.add(item.codePoint);
57323 if (ignoreCase && unicode) {
57324 var folded = caseFold(item.codePoint);
57325 if (folded) {
57326 set.add(folded);
57327 }
57328 }
57329 break;
57330 case 'characterClassRange':
57331 var min = item.min.codePoint;
57332 var max = item.max.codePoint;
57333 set.addRange(min, max);
57334 if (ignoreCase && unicode) {
57335 set.iuAddRange(min, max);
57336 }
57337 break;
57338 case 'characterClassEscape':
57339 set.add(getCharacterClassEscapeSet(item.value));
57340 break;
57341 // The `default` clause is only here as a safeguard; it should never be
57342 // reached. Code coverage tools should ignore it.
57343 /* istanbul ignore next */
57344 default:
57345 throw Error('Unknown term type: ' + item.type);
57346 }
57347 });
57348 if (characterClassItem.negative) {
57349 set = (unicode ? UNICODE_SET : BMP_SET).clone().remove(set);
57350 }
57351 update(characterClassItem, set.toString());
57352 return characterClassItem;
57353 }
57354
57355 function processTerm(item) {
57356 switch (item.type) {

Callers 1

processTermFunction · 0.85

Calls 4

regenerateFunction · 0.85
caseFoldFunction · 0.85
updateFunction · 0.70

Tested by

no test coverage detected