transform-test-gate-pragma.js — react Source File
Architecture documentation for transform-test-gate-pragma.js, a javascript file in the react codebase.
Entity Profile
Relationship Graph
Source Code
'use strict';
/* eslint-disable no-for-of-loops/no-for-of-loops */
const getComments = require('./getComments');
function transform(babel) {
const {types: t} = babel;
// A very stupid subset of pseudo-JavaScript, used to run tests conditionally
// based on the environment.
//
// Input:
// @gate a && (b || c)
// test('some test', () => {/*...*/})
//
// Output:
// @gate a && (b || c)
// _test_gate(ctx => ctx.a && (ctx.b || ctx.c), 'some test', () => {/*...*/});
//
// expression → binary ( ( "||" | "&&" ) binary)* ;
// binary → unary ( ( "==" | "!=" | "===" | "!==" ) unary )* ;
// unary → "!" primary
// | primary ;
// primary → NAME | STRING | BOOLEAN
// | "(" expression ")" ;
function tokenize(code) {
const tokens = [];
let i = 0;
while (i < code.length) {
let char = code[i];
// Double quoted strings
if (char === '"') {
let string = '';
i++;
do {
if (i > code.length) {
throw Error('Missing a closing quote');
}
char = code[i++];
if (char === '"') {
break;
}
string += char;
} while (true);
tokens.push({type: 'string', value: string});
continue;
}
// Single quoted strings
if (char === "'") {
let string = '';
i++;
do {
if (i > code.length) {
throw Error('Missing a closing quote');
}
char = code[i++];
if (char === "'") {
break;
// ... (277 more lines)
Domain
Subdomains
Functions
Source
Frequently Asked Questions
What does transform-test-gate-pragma.js do?
transform-test-gate-pragma.js is a source file in the react codebase, written in javascript. It belongs to the BabelCompiler domain, Entrypoint subdomain.
What functions are defined in transform-test-gate-pragma.js?
transform-test-gate-pragma.js defines 1 function(s): transform.
Where is transform-test-gate-pragma.js in the architecture?
transform-test-gate-pragma.js is located at scripts/babel/transform-test-gate-pragma.js (domain: BabelCompiler, subdomain: Entrypoint, directory: scripts/babel).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free