From 940bacc4485cee5c3f4776b3f73ae9743f2fb6ac Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Fri, 22 Nov 2024 10:32:56 -0500 Subject: [PATCH 1/2] Don't error on custom-elements --- src/parser/transforms.js | 14 +++++++++++++- tests/parser.test.js | 17 +++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/src/parser/transforms.js b/src/parser/transforms.js index 70d2bf9..aee0125 100644 --- a/src/parser/transforms.js +++ b/src/parser/transforms.js @@ -492,11 +492,23 @@ module.exports.convertAst = function convertAst(result, preprocessedResult, visi * it's NOT a standard html or svg tag, it should have a referenced variable */ const ignore = - n.name === 'this' || n.name.startsWith(':') || n.name.startsWith('@') || !scope; + // Local instance access + n.name === 'this' || + // named block + n.name.startsWith(':') || + // argument + n.name.startsWith('@') || + // definend rocally + !scope || + // custom-elements are allowed to be used even if they don't exist + // and are undefined + n.name.includes('-'); + const registerUndef = isUpperCase(n.name[0]) || node.name.includes('.') || (!htmlTags.includes(node.name) && !svgTags.includes(node.name)); + if (!ignore && (variable || registerUndef)) { registerNodeInScope(n, scope, variable); } diff --git a/tests/parser.test.js b/tests/parser.test.js index 699fd9a..345ee8c 100644 --- a/tests/parser.test.js +++ b/tests/parser.test.js @@ -2720,4 +2720,21 @@ export const NotFound =