diff --git a/src/generators/dom/visitors/Element.js b/src/generators/dom/visitors/Element.js index 7b359b1d90..524a979aa9 100644 --- a/src/generators/dom/visitors/Element.js +++ b/src/generators/dom/visitors/Element.js @@ -110,7 +110,8 @@ export default { leave ( generator, node ) { if ( node.name in meta ) { - return meta[ node.name ].leave( generator, node ); + if ( meta[ node.name ].leave ) meta[ node.name ].leave( generator, node ); + return; } const isComponent = node.name in generator.components; diff --git a/src/generators/server-side-rendering/visitors/Element.js b/src/generators/server-side-rendering/visitors/Element.js index 4b750bf7b1..c8bfd1f902 100644 --- a/src/generators/server-side-rendering/visitors/Element.js +++ b/src/generators/server-side-rendering/visitors/Element.js @@ -1,8 +1,17 @@ import Component from './Component.js'; import isVoidElementName from '../../../utils/isVoidElementName.js'; +import Window from './meta/Window.js'; + +const meta = { + ':Window': Window +}; export default { enter ( generator, node ) { + if ( node.name in meta ) { + return meta[ node.name ].enter( generator, node ); + } + if ( node.name in generator.components || node.name === ':Self' ) { Component.enter( generator, node ); return; @@ -39,6 +48,11 @@ export default { }, leave ( generator, node ) { + if ( node.name in meta ) { + if ( meta[ node.name ].leave ) meta[ node.name ].leave( generator, node ); + return; + } + if ( node.name in generator.components || node.name === ':Self' ) { Component.leave( generator, node ); return; diff --git a/src/generators/server-side-rendering/visitors/meta/Window.js b/src/generators/server-side-rendering/visitors/meta/Window.js new file mode 100644 index 0000000000..7df7d8bdaf --- /dev/null +++ b/src/generators/server-side-rendering/visitors/meta/Window.js @@ -0,0 +1,9 @@ +export default { + enter () { + // noop + }, + + leave () { + // noop + } +}; diff --git a/test/generator/samples/window-event/_config.js b/test/generator/samples/window-event/_config.js index 89dfd2057c..d79202f67a 100644 --- a/test/generator/samples/window-event/_config.js +++ b/test/generator/samples/window-event/_config.js @@ -1,6 +1,8 @@ export default { html: `