From 9d76a92e5f1587e2b635848c4285c431adddfbfa Mon Sep 17 00:00:00 2001 From: Yuichiro Yamashita Date: Sat, 6 Nov 2021 14:28:40 +0900 Subject: [PATCH] make it more correct of claim_element --- .../compile/render_dom/wrappers/Element/index.ts | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/compiler/compile/render_dom/wrappers/Element/index.ts b/src/compiler/compile/render_dom/wrappers/Element/index.ts index a5bb7790a1..e03c0da6d3 100644 --- a/src/compiler/compile/render_dom/wrappers/Element/index.ts +++ b/src/compiler/compile/render_dom/wrappers/Element/index.ts @@ -424,10 +424,15 @@ export default class ElementWrapper extends Wrapper { .filter((attr) => !(attr instanceof SpreadAttributeWrapper) && !attr.property_name) .map((attr) => p`${(attr as StyleAttributeWrapper | AttributeWrapper).name}: true`); - const name = this.node.namespace - ? this.node.name - : this.node.name.toUpperCase(); - const reference = this.node.is_dynamic_element ? this.node.tag_expr.manipulate(block) : `"${name}"`; + const reference = (function (node) { + if (node.tag_expr.node.type === 'Literal') { + if (node.namespace) return `"${node.tag_expr.node.value}"`; + return `"${(node.tag_expr.node.value as String || '').toUpperCase()}"`; + } else { + if (node.namespace) return x`${node.tag_expr.manipulate(block)}`; + return x`(${node.tag_expr.manipulate(block)} || 'null').toUpperCase()`; + } + }(this.node)); if (this.node.namespace === namespaces.svg) { return x`@claim_svg_element(${nodes}, ${reference}, { ${attributes} })`;