@samitouri / QOS-React-2 / commits / 3883eb9507

[playground] Make all options configurable

Sathya Gunasekaran committed Jun 23, 2023 at 14:55 UTC 3883eb9507d29ac36410d6808f5332fa85b8438c
1 file changed +25 -6
compiler/forget/apps/playground/components/Editor/index.tsx
+25 -6
@@ -129,6 +129,11 @@ function compile(source: string): CompilerOutput {
129 let validateRefAccessDuringRender = true;
130 let enableEmitFreeze = null;
131 let enableOptimizeFunctionExpressions = false;
132 + let inlineUseMemo = true;
133 + let validateHooksUsage = true;
134 + let enableFunctionCallSignatureOptimizations = true;
135 + let validateFrozenLambdas = true;
136 + let assertValidMutableRanges = true;
137 if (firstLine.includes("@memoizeJsxElements false")) {
138 memoizeJsxElements = false;
139 }
@@ -153,22 +158,36 @@ function compile(source: string): CompilerOutput {
158 importSpecifierName: "makeReadOnly",
159 };
160 }
156 -
161 + if (firstLine.includes("@inlineUseMemo false")) {
162 + inlineUseMemo = false;
163 + }
164 + if (firstLine.includes("@enableFunctionCallSignatureOptimizations false")) {
165 + enableFunctionCallSignatureOptimizations = false;
166 + }
167 + if (firstLine.includes("@validateHooksUsage false")) {
168 + validateHooksUsage = false;
169 + }
170 + if (firstLine.includes("@validateFrozenLambdas false")) {
171 + validateHooksUsage = false;
172 + }
173 + if (firstLine.includes("@assertValidMutableRanges false")) {
174 + assertValidMutableRanges = false;
175 + }
176 for (const fn of parseFunctions(source)) {
177 for (const result of run(fn, {
178 customHooks: new Map([...COMMON_HOOKS]),
179 enableAssumeHooksFollowRulesOfReact,
161 - enableFunctionCallSignatureOptimizations: true,
180 + enableFunctionCallSignatureOptimizations,
181 disableAllMemoization,
182 enableTreatHooksAsFunctions,
164 - inlineUseMemo: true,
183 + inlineUseMemo,
184 memoizeJsxElements,
166 - validateHooksUsage: true,
185 + validateHooksUsage,
186 validateRefAccessDuringRender,
168 - validateFrozenLambdas: true,
187 + validateFrozenLambdas,
188 enableEmitFreeze,
189 enableOptimizeFunctionExpressions,
171 - assertValidMutableRanges: true,
190 + assertValidMutableRanges,
191 })) {
192 const fnName = fn.node.id?.name ?? null;
193 switch (result.kind) {