From 5f27bbdcde3f2943dbb95870718430caedeca86c Mon Sep 17 00:00:00 2001 From: Conduitry Date: Thu, 20 Apr 2017 14:54:07 -0400 Subject: [PATCH] replace invalid characters in element names when creating variables (#516) --- src/generators/dom/visitors/Element/Element.js | 4 ++-- test/runtime/samples/element-invalid-name/_config.js | 5 +++++ test/runtime/samples/element-invalid-name/main.html | 1 + 3 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 test/runtime/samples/element-invalid-name/_config.js create mode 100644 test/runtime/samples/element-invalid-name/main.html diff --git a/src/generators/dom/visitors/Element/Element.js b/src/generators/dom/visitors/Element/Element.js index 7f55d84ec9..c4bf6c6af4 100644 --- a/src/generators/dom/visitors/Element/Element.js +++ b/src/generators/dom/visitors/Element/Element.js @@ -34,7 +34,7 @@ export default function visitElement ( generator, block, state, node ) { return visitComponent( generator, block, state, node ); } - const name = block.getUniqueName( node.name ); + const name = block.getUniqueName( node.name.replace( /[^a-zA-Z_$]/g, '_' ) ); const childState = Object.assign( {}, state, { isTopLevel: false, @@ -136,4 +136,4 @@ function getRenderStatement ( generator, namespace, name ) { } return `${generator.helper( 'createElement' )}( '${name}' )`; -} \ No newline at end of file +} diff --git a/test/runtime/samples/element-invalid-name/_config.js b/test/runtime/samples/element-invalid-name/_config.js new file mode 100644 index 0000000000..af6e4933ce --- /dev/null +++ b/test/runtime/samples/element-invalid-name/_config.js @@ -0,0 +1,5 @@ +export default { + html: ` + Hello + ` +} diff --git a/test/runtime/samples/element-invalid-name/main.html b/test/runtime/samples/element-invalid-name/main.html new file mode 100644 index 0000000000..0ff9794228 --- /dev/null +++ b/test/runtime/samples/element-invalid-name/main.html @@ -0,0 +1 @@ +Hello