From 39a9ac84fdf307e7b36bbb889d2faba74b46126d Mon Sep 17 00:00:00 2001 From: Jake Bailey <5341706+jakebailey@users.noreply.github.com> Date: Sun, 29 Jan 2023 17:07:58 -0800 Subject: [PATCH] Remove extra checkDefined in visitEachChildOfJsxExpression (#52482) --- src/compiler/visitorPublic.ts | 2 +- src/testRunner/unittests/transform.ts | 26 +++++++++++++++++++ .../transformsCorrectly.jsxExpression.js | 3 +++ 3 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 tests/baselines/reference/transformApi/transformsCorrectly.jsxExpression.js diff --git a/src/compiler/visitorPublic.ts b/src/compiler/visitorPublic.ts index 9e3dee94405..52a1fa28eaf 100644 --- a/src/compiler/visitorPublic.ts +++ b/src/compiler/visitorPublic.ts @@ -1454,7 +1454,7 @@ const visitEachChildTable: VisitEachChildTable = { [SyntaxKind.JsxExpression]: function visitEachChildOfJsxExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) { return context.factory.updateJsxExpression(node, - Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))); + nodeVisitor(node.expression, visitor, isExpression)); }, // Clauses diff --git a/src/testRunner/unittests/transform.ts b/src/testRunner/unittests/transform.ts index 89331f93c42..b8c080a871a 100644 --- a/src/testRunner/unittests/transform.ts +++ b/src/testRunner/unittests/transform.ts @@ -669,5 +669,31 @@ const MyClass = class { }).outputText; }); + testBaseline("jsxExpression", () => { + function doNothing(context: ts.TransformationContext) { + const visitor = (node: ts.Node): ts.Node => { + return ts.visitEachChild(node, visitor, context); + }; + return (node: ts.SourceFile) => ts.visitNode(node, visitor, ts.isSourceFile); + } + + return ts.transpileModule(` +function test () { + return <> + {/* This comment breaks the transformer */} + +} +`, { + transformers: { + before: [doNothing], + }, + compilerOptions: { + jsx: ts.JsxEmit.React, + target: ScriptTarget.ES2015, + experimentalDecorators: true, + newLine: NewLineKind.CarriageReturnLineFeed, + } + }).outputText; + }); }); diff --git a/tests/baselines/reference/transformApi/transformsCorrectly.jsxExpression.js b/tests/baselines/reference/transformApi/transformsCorrectly.jsxExpression.js new file mode 100644 index 00000000000..5d97a368af0 --- /dev/null +++ b/tests/baselines/reference/transformApi/transformsCorrectly.jsxExpression.js @@ -0,0 +1,3 @@ +function test() { + return React.createElement(React.Fragment, null); +}