MCPcopy Create free account
hub / github.com/krasimir/react-in-patterns / isolate

Function isolate

code/styling/public/app.js:23401–23487  ·  view source on GitHub ↗

* Isolate * * @param {Array } current

(current)

Source from the content-addressed store, hash-verified

23399 * @param {Array<string>} current
23400 */
23401 function isolate (current) {
23402 for (var i = 0, length = current.length, selector = Array(length), padding, element; i < length; ++i) {
23403 // split individual elements in a selector i.e h1 h2 === [h1, h2]
23404 var elements = current[i].split(elementptn)
23405 var out = ''
23406
23407 for (var j = 0, size = 0, tail = 0, code = 0, l = elements.length; j < l; ++j) {
23408 // empty element
23409 if ((size = (element = elements[j]).length) === 0 && l > 1) {
23410 continue
23411 }
23412
23413 tail = out.charCodeAt(out.length-1)
23414 code = element.charCodeAt(0)
23415 padding = ''
23416
23417 if (j !== 0) {
23418 // determine if we need padding
23419 switch (tail) {
23420 case STAR:
23421 case TILDE:
23422 case GREATERTHAN:
23423 case PLUS:
23424 case SPACE:
23425 case OPENPARENTHESES: {
23426 break
23427 }
23428 default: {
23429 padding = ' '
23430 }
23431 }
23432 }
23433
23434 switch (code) {
23435 case AND: {
23436 element = padding + nscopealt
23437 }
23438 case TILDE:
23439 case GREATERTHAN:
23440 case PLUS:
23441 case SPACE:
23442 case CLOSEPARENTHESES:
23443 case OPENPARENTHESES: {
23444 break
23445 }
23446 case OPENBRACKET: {
23447 element = padding + element + nscopealt
23448 break
23449 }
23450 case COLON: {
23451 switch (element.charCodeAt(1)*2 + element.charCodeAt(2)*3) {
23452 // :global
23453 case 530: {
23454 if (escape > 0) {
23455 element = padding + element.substring(8, size - 1)
23456 break
23457 }
23458 }

Callers 1

compileFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected