From 6a1fbef8fdc8d2bb12a0124b5730d5682a4360d5 Mon Sep 17 00:00:00 2001 From: Dylan Conway <35280289+dylan-conway@users.noreply.github.com> Date: Tue, 20 Jun 2023 19:29:20 -0700 Subject: record jsx factory symbols in classic mode (#3360) * record jsx factory symbols * merge factory/fragment when more than one part * update test * use existing functions, use, `memberListToComponentsIfDifferent` * missing file * fix defaults --- src/js_parser.zig | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/js_parser.zig') diff --git a/src/js_parser.zig b/src/js_parser.zig index 51627a134..33a8cef6d 100644 --- a/src/js_parser.zig +++ b/src/js_parser.zig @@ -15096,6 +15096,10 @@ fn NewParser_( if (e_.tag) |_tag| { break :tagger p.visitExpr(_tag); } else { + if (p.options.jsx.runtime == .classic) { + break :tagger p.jsxStringsToMemberExpression(expr.loc, p.options.jsx.fragment) catch unreachable; + } + break :tagger p.jsxImport(.Fragment, expr.loc); } }; @@ -15169,9 +15173,11 @@ fn NewParser_( i += @intCast(usize, @boolToInt(args[i].data != .e_missing)); } + const target = p.jsxStringsToMemberExpression(expr.loc, p.options.jsx.factory) catch unreachable; + // Call createElement() return p.newExpr(E.Call{ - .target = p.jsxImport(.createElement, expr.loc), + .target = target, .args = ExprNodeList.init(args[0..i]), // Enable tree shaking .can_be_unwrapped_if_unused = !p.options.ignore_dce_annotations, -- cgit v1.2.3