Skip to content

Commit f4d3cee

Browse files
author
Jack Pope
committed
Use object for transform config
1 parent 260f273 commit f4d3cee

File tree

3 files changed

+13
-9
lines changed

3 files changed

+13
-9
lines changed

compiler/packages/babel-plugin-react-compiler/src/HIR/Environment.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,12 @@ import {
5050
import {Scope as BabelScope} from '@babel/traverse';
5151
import {TypeSchema} from './TypeSchema';
5252

53-
export const ReactElementSymbolSchema = z.union([
54-
z.literal('react.element'),
55-
z.literal('react.transitional.element'),
56-
]);
53+
export const ReactElementSymbolSchema = z.object({
54+
elementSymbol: z.union([
55+
z.literal('react.element'),
56+
z.literal('react.transitional.element'),
57+
]),
58+
});
5759

5860
export const ExternalFunctionSchema = z.object({
5961
// Source for the imported module that exports the `importSpecifierName` functions

compiler/packages/babel-plugin-react-compiler/src/Optimization/InlineJsxTransform.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import {
2323
markPredecessors,
2424
reversePostorderBlocks,
2525
} from '../HIR/HIRBuilder';
26-
import {CompilerError} from '..';
26+
import {CompilerError, EnvironmentConfig} from '..';
2727

2828
function createSymbolProperty(
2929
fn: HIRFunction,
@@ -318,7 +318,9 @@ function createPropsProperties(
318318
// TODO: Make PROD only with conditional statements
319319
export function inlineJsxTransform(
320320
fn: HIRFunction,
321-
elementSymbol: 'react.element' | 'react.transitional.element',
321+
inlineJsxTransformConfig: NonNullable<
322+
EnvironmentConfig['inlineJsxTransform']
323+
>,
322324
): void {
323325
for (const [, block] of fn.body.blocks) {
324326
let nextInstructions: Array<Instruction> | null = null;
@@ -347,7 +349,7 @@ export function inlineJsxTransform(
347349
instr,
348350
nextInstructions,
349351
'$$typeof',
350-
elementSymbol,
352+
inlineJsxTransformConfig.elementSymbol,
351353
),
352354
createTagProperty(fn, instr, nextInstructions, instr.value.tag),
353355
refProperty,
@@ -383,7 +385,7 @@ export function inlineJsxTransform(
383385
instr,
384386
nextInstructions,
385387
'$$typeof',
386-
elementSymbol,
388+
inlineJsxTransformConfig.elementSymbol,
387389
),
388390
createSymbolProperty(
389391
fn,

compiler/packages/snap/src/compiler.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ function makePluginOptions(
204204

205205
let inlineJsxTransform: EnvironmentConfig['inlineJsxTransform'] = null;
206206
if (firstLine.includes('@enableInlineJsxTransform')) {
207-
inlineJsxTransform = 'react.transitional.element';
207+
inlineJsxTransform = {elementSymbol: 'react.transitional.element'};
208208
}
209209

210210
let logs: Array<{filename: string | null; event: LoggerEvent}> = [];

0 commit comments

Comments
 (0)