Skip to content

Commit 20670aa

Browse files
committed
Fix issue sveltejs#3508
1 parent 14a46a1 commit 20670aa

File tree

4 files changed

+33
-4
lines changed

4 files changed

+33
-4
lines changed

src/compiler/compile/render_dom/index.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -81,10 +81,10 @@ export default function dom(
8181
${$$props} => {
8282
${uses_props && component.invalidate('$$props', `$$props = @assign(@assign({}, $$props), $$new_props)`)}
8383
${writable_props.map(prop =>
84-
`if ('${prop.export_name}' in ${$$props}) ${component.invalidate(prop.name, `${prop.name} = ${$$props}.${prop.export_name}`)};`
85-
)}
84+
`if ('${prop.export_name}' in ${$$props}) ${component.invalidate(prop.name, `${prop.name} = ${$$props}.${prop.export_name}`)};`
85+
)}
8686
${component.slots.size > 0 &&
87-
`if ('$$scope' in ${$$props}) ${component.invalidate('$$scope', `$$scope = ${$$props}.$$scope`)};`}
87+
`if ('$$scope' in ${$$props}) ${component.invalidate('$$scope', `$$scope = ${$$props}.$$scope`)};`}
8888
}
8989
`
9090
: null;
@@ -243,7 +243,11 @@ export default function dom(
243243

244244
const filtered_declarations = component.vars
245245
.filter(v => ((v.referenced || v.export_name) && !v.hoistable))
246-
.map(v => v.name);
246+
.map(v =>
247+
v.export_name && v.export_name !== v.name
248+
? ` ${v.export_name} : ${v.name}, ${v.name}`
249+
: v.name
250+
);
247251

248252
if (uses_props) filtered_declarations.push(`$$props: $$props = ${component.helper('exclude_internal_props')}($$props)`);
249253

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
export default {
2+
html: `
3+
<p>my name is john</p>
4+
<p>my color is blue</p>
5+
<p>bound name is john</p>
6+
<p>bound color is blue</p>`,
7+
};
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<script>
2+
let alias;
3+
let color;
4+
export { alias as name, color };
5+
</script>
6+
7+
<p>my name is {alias}</p>
8+
<p>my color is {color}</p>
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<script>
2+
import Component from './component.svelte';
3+
4+
let name = 'john';
5+
let color = 'blue';
6+
</script>
7+
8+
<Component bind:name bind:color />
9+
<p>bound name is {name}</p>
10+
<p>bound color is {color}</p>

0 commit comments

Comments
 (0)