diff --git a/compiler/packages/babel-plugin-react-compiler/src/HIR/Environment.ts b/compiler/packages/babel-plugin-react-compiler/src/HIR/Environment.ts index 1af1df940b3fd..50905bc581dc1 100644 --- a/compiler/packages/babel-plugin-react-compiler/src/HIR/Environment.ts +++ b/compiler/packages/babel-plugin-react-compiler/src/HIR/Environment.ts @@ -50,10 +50,12 @@ import { import {Scope as BabelScope} from '@babel/traverse'; import {TypeSchema} from './TypeSchema'; -export const ReactElementSymbolSchema = z.union([ - z.literal('react.element'), - z.literal('react.transitional.element'), -]); +export const ReactElementSymbolSchema = z.object({ + elementSymbol: z.union([ + z.literal('react.element'), + z.literal('react.transitional.element'), + ]), +}); export const ExternalFunctionSchema = z.object({ // Source for the imported module that exports the `importSpecifierName` functions diff --git a/compiler/packages/babel-plugin-react-compiler/src/Optimization/InlineJsxTransform.ts b/compiler/packages/babel-plugin-react-compiler/src/Optimization/InlineJsxTransform.ts index 580ef5e7bc0a4..396e6ad1be8dc 100644 --- a/compiler/packages/babel-plugin-react-compiler/src/Optimization/InlineJsxTransform.ts +++ b/compiler/packages/babel-plugin-react-compiler/src/Optimization/InlineJsxTransform.ts @@ -23,7 +23,7 @@ import { markPredecessors, reversePostorderBlocks, } from '../HIR/HIRBuilder'; -import {CompilerError} from '..'; +import {CompilerError, EnvironmentConfig} from '..'; function createSymbolProperty( fn: HIRFunction, @@ -318,7 +318,9 @@ function createPropsProperties( // TODO: Make PROD only with conditional statements export function inlineJsxTransform( fn: HIRFunction, - elementSymbol: 'react.element' | 'react.transitional.element', + inlineJsxTransformConfig: NonNullable< + EnvironmentConfig['inlineJsxTransform'] + >, ): void { for (const [, block] of fn.body.blocks) { let nextInstructions: Array | null = null; @@ -347,7 +349,7 @@ export function inlineJsxTransform( instr, nextInstructions, '$$typeof', - elementSymbol, + inlineJsxTransformConfig.elementSymbol, ), createTagProperty(fn, instr, nextInstructions, instr.value.tag), refProperty, @@ -383,7 +385,7 @@ export function inlineJsxTransform( instr, nextInstructions, '$$typeof', - elementSymbol, + inlineJsxTransformConfig.elementSymbol, ), createSymbolProperty( fn, diff --git a/compiler/packages/snap/src/compiler.ts b/compiler/packages/snap/src/compiler.ts index 3587d1411eb77..bbb6aeded750c 100644 --- a/compiler/packages/snap/src/compiler.ts +++ b/compiler/packages/snap/src/compiler.ts @@ -204,7 +204,7 @@ function makePluginOptions( let inlineJsxTransform: EnvironmentConfig['inlineJsxTransform'] = null; if (firstLine.includes('@enableInlineJsxTransform')) { - inlineJsxTransform = 'react.transitional.element'; + inlineJsxTransform = {elementSymbol: 'react.transitional.element'}; } let logs: Array<{filename: string | null; event: LoggerEvent}> = [];