dont shadow module context

pull/1839/head
Rich Harris 7 years ago
parent de3002b63a
commit 6ecf9e59d3

@ -270,13 +270,16 @@ export default function dom(
addToSet(all_reactive_dependencies, d.dependencies); addToSet(all_reactive_dependencies, d.dependencies);
}); });
const user_code = component.javascript || (
component.ast.js.length === 0 && filtered_props.length > 0
? `let { ${filtered_props.map(x => x.name === x.as ? x.as : `${x.as}: ${x.name}`).join(', ')} } = $$props;`
: null
);
if (has_definition) { if (has_definition) {
builder.addBlock(deindent` builder.addBlock(deindent`
function ${definition}(${args.join(', ')}) { function ${definition}(${args.join(', ')}) {
${component.javascript || ( ${user_code}
filtered_props.length > 0 &&
`let { ${filtered_props.map(x => x.name === x.as ? x.as : `${x.as}: ${x.name}`).join(', ')} } = $$props;`
)}
${component.partly_hoisted.length > 0 && component.partly_hoisted.join('\n\n')} ${component.partly_hoisted.length > 0 && component.partly_hoisted.join('\n\n')}

@ -22,18 +22,18 @@ export default function ssr(
{ code: null, map: null } : { code: null, map: null } :
component.stylesheet.render(options.filename, true); component.stylesheet.render(options.filename, true);
let setup; let user_code;
if (component.javascript) { if (component.javascript) {
setup = component.javascript; user_code = component.javascript;
} else if (component.props.length > 0) { } else if (component.ast.js.length === 0 && component.props.length > 0) {
const props = component.props.map(prop => { const props = component.props.map(prop => {
return prop.as === prop.name return prop.as === prop.name
? prop.as ? prop.as
: `${prop.as}: ${prop.name}` : `${prop.as}: ${prop.name}`
}); });
setup = `let { ${props.join(', ')} } = $$props;` user_code = `let { ${props.join(', ')} } = $$props;`
} }
// TODO only do this for props with a default value // TODO only do this for props with a default value
@ -64,7 +64,7 @@ export default function ssr(
return \`${renderer.code}\`;`; return \`${renderer.code}\`;`;
const blocks = [ const blocks = [
setup, user_code,
parent_bindings.join('\n'), parent_bindings.join('\n'),
css.code && `$$result.css.add(#css);`, css.code && `$$result.css.add(#css);`,
main main

@ -0,0 +1,3 @@
export default {
html: `<p>42</p>`
};

@ -0,0 +1,5 @@
<script context="module">
const foo = 42;
</script>
<p>{foo}</p>
Loading…
Cancel
Save