MCPcopy Index your code
hub / github.com/reactjs/react-rails / scanTemplate

Function scanTemplate

lib/assets/javascripts/JSXTransformer.js:3591–3715  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

3589 }
3590
3591 function scanTemplate() {
3592 var cooked = '', ch, start, terminated, tail, restore, unescaped, code, octal;
3593
3594 terminated = false;
3595 tail = false;
3596 start = index;
3597
3598 ++index;
3599
3600 while (index < length) {
3601 ch = source[index++];
3602 if (ch === '`') {
3603 tail = true;
3604 terminated = true;
3605 break;
3606 } else if (ch === '$') {
3607 if (source[index] === '{') {
3608 ++index;
3609 terminated = true;
3610 break;
3611 }
3612 cooked += ch;
3613 } else if (ch === '\\') {
3614 ch = source[index++];
3615 if (!isLineTerminator(ch.charCodeAt(0))) {
3616 switch (ch) {
3617 case 'n':
3618 cooked += '\n';
3619 break;
3620 case 'r':
3621 cooked += '\r';
3622 break;
3623 case 't':
3624 cooked += '\t';
3625 break;
3626 case 'u':
3627 case 'x':
3628 if (source[index] === '{') {
3629 ++index;
3630 cooked += scanUnicodeCodePointEscape();
3631 } else {
3632 restore = index;
3633 unescaped = scanHexEscape(ch);
3634 if (unescaped) {
3635 cooked += unescaped;
3636 } else {
3637 index = restore;
3638 cooked += ch;
3639 }
3640 }
3641 break;
3642 case 'b':
3643 cooked += '\b';
3644 break;
3645 case 'f':
3646 cooked += '\f';
3647 break;
3648 case 'v':

Callers 2

scanTemplateElementFunction · 0.85
advanceFunction · 0.85

Calls 5

isLineTerminatorFunction · 0.85
scanHexEscapeFunction · 0.85
isOctalDigitFunction · 0.85
throwErrorFunction · 0.85

Tested by

no test coverage detected