diff --git a/packages/babel-plugin-jsx-dom-expressions/src/ssr/element.js b/packages/babel-plugin-jsx-dom-expressions/src/ssr/element.js index 285d7b09..73f875d4 100644 --- a/packages/babel-plugin-jsx-dom-expressions/src/ssr/element.js +++ b/packages/babel-plugin-jsx-dom-expressions/src/ssr/element.js @@ -332,6 +332,9 @@ function transformAttributes(path, results, info) { t.isObjectExpression(value.expression) && !value.expression.properties.some(p => t.isSpreadElement(p)) ) { + if (value.expression.properties.length === 0) { + return; + } const props = value.expression.properties.map((p, i) => t.callExpression(registerImportMethod(path, "ssrStyleProperty"), [ t.stringLiteral( diff --git a/packages/babel-plugin-jsx-dom-expressions/test/__dom_fixtures__/attributeExpressions/code.js b/packages/babel-plugin-jsx-dom-expressions/test/__dom_fixtures__/attributeExpressions/code.js index 53c4d084..d77bfee5 100644 --- a/packages/babel-plugin-jsx-dom-expressions/test/__dom_fixtures__/attributeExpressions/code.js +++ b/packages/babel-plugin-jsx-dom-expressions/test/__dom_fixtures__/attributeExpressions/code.js @@ -303,3 +303,5 @@ const template89 =
+ +const template91 =
\ No newline at end of file diff --git a/packages/babel-plugin-jsx-dom-expressions/test/__dom_fixtures__/attributeExpressions/output.js b/packages/babel-plugin-jsx-dom-expressions/test/__dom_fixtures__/attributeExpressions/output.js index 10545d91..722a2a4d 100644 --- a/packages/babel-plugin-jsx-dom-expressions/test/__dom_fixtures__/attributeExpressions/output.js +++ b/packages/babel-plugin-jsx-dom-expressions/test/__dom_fixtures__/attributeExpressions/output.js @@ -626,4 +626,5 @@ const template89 = _tmpl$59(); }); } const template90 = _tmpl$4(); +const template91 = _tmpl$4(); _$delegateEvents(["click", "input"]); diff --git a/packages/babel-plugin-jsx-dom-expressions/test/__ssr_fixtures__/attributeExpressions/code.js b/packages/babel-plugin-jsx-dom-expressions/test/__ssr_fixtures__/attributeExpressions/code.js index 479fe358..681832af 100644 --- a/packages/babel-plugin-jsx-dom-expressions/test/__ssr_fixtures__/attributeExpressions/code.js +++ b/packages/babel-plugin-jsx-dom-expressions/test/__ssr_fixtures__/attributeExpressions/code.js @@ -245,3 +245,8 @@ const template51 = ( /> ); +const template52 = ( +
+); \ No newline at end of file diff --git a/packages/babel-plugin-jsx-dom-expressions/test/__ssr_fixtures__/attributeExpressions/output.js b/packages/babel-plugin-jsx-dom-expressions/test/__ssr_fixtures__/attributeExpressions/output.js index 83e48eac..6858228a 100644 --- a/packages/babel-plugin-jsx-dom-expressions/test/__ssr_fixtures__/attributeExpressions/output.js +++ b/packages/babel-plugin-jsx-dom-expressions/test/__ssr_fixtures__/attributeExpressions/output.js @@ -310,3 +310,4 @@ const template49 = _$ssr(_tmpl$27); const template50 = _$ssr(_tmpl$28); const nope = () => undefined; const template51 = _$ssr(_tmpl$29, _$ssrStyleProperty("--bg:", _$escape(nope(), true))); +const template52 = _$ssr(_tmpl$8); \ No newline at end of file diff --git a/packages/babel-plugin-jsx-dom-expressions/test/__ssr_hydratable_fixtures__/attributeExpressions/code.js b/packages/babel-plugin-jsx-dom-expressions/test/__ssr_hydratable_fixtures__/attributeExpressions/code.js index d72b62a2..a8698a8d 100644 --- a/packages/babel-plugin-jsx-dom-expressions/test/__ssr_hydratable_fixtures__/attributeExpressions/code.js +++ b/packages/babel-plugin-jsx-dom-expressions/test/__ssr_hydratable_fixtures__/attributeExpressions/code.js @@ -202,3 +202,5 @@ const template41 = ( ); + +const template42 =
; diff --git a/packages/babel-plugin-jsx-dom-expressions/test/__ssr_hydratable_fixtures__/attributeExpressions/output.js b/packages/babel-plugin-jsx-dom-expressions/test/__ssr_hydratable_fixtures__/attributeExpressions/output.js index 0352351f..335377f9 100644 --- a/packages/babel-plugin-jsx-dom-expressions/test/__ssr_hydratable_fixtures__/attributeExpressions/output.js +++ b/packages/babel-plugin-jsx-dom-expressions/test/__ssr_hydratable_fixtures__/attributeExpressions/output.js @@ -286,3 +286,4 @@ const template41 = _$ssr( _$ssrAttribute("value", _$escape(Color.Red, true), false), _$ssrAttribute("value", _$escape(Color.Blue, true), false) ); +const template42 = _$ssr(_tmpl$8, _$ssrHydrationKey());