mirror of https://github.com/sveltejs/svelte
fix bitmask overflow for slot (#4485)
parent
cf660bdab1
commit
8feb85a61f
@ -0,0 +1,9 @@
|
||||
<script>
|
||||
let dummy = 0;
|
||||
function increment () {
|
||||
dummy = 1;
|
||||
}
|
||||
</script>
|
||||
|
||||
<slot dummy={dummy}></slot>
|
||||
<button on:click={increment}></button>
|
@ -0,0 +1,30 @@
|
||||
export default {
|
||||
|
||||
html: `
|
||||
<p>_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31_32_33_34_35_36_37_38_39_40</p>
|
||||
<p>0</p>
|
||||
<button></button>
|
||||
`,
|
||||
|
||||
async test({ assert, component, target, window }) {
|
||||
// change from inside
|
||||
const button = target.querySelector('button');
|
||||
await button.dispatchEvent(new window.MouseEvent('click'));
|
||||
|
||||
assert.htmlEqual(target.innerHTML, `
|
||||
<p>_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31_32_33_34_35_36_37_38_39_40</p>
|
||||
<p>1</p>
|
||||
<button></button>
|
||||
`);
|
||||
|
||||
// change from outside
|
||||
component._0 = 'a';
|
||||
component._40 = 'b';
|
||||
|
||||
assert.htmlEqual(target.innerHTML, `
|
||||
<p>a_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31_32_33_34_35_36_37_38_39b</p>
|
||||
<p>1</p>
|
||||
<button></button>
|
||||
`);
|
||||
}
|
||||
};
|
@ -0,0 +1,11 @@
|
||||
<script>
|
||||
import Echo from './Echo.svelte';
|
||||
|
||||
export let _0 = '_0', _1 = '_1', _2 = '_2', _3 = '_3', _4 = '_4', _5 = '_5', _6 = '_6', _7 = '_7', _8 = '_8', _9 = '_9', _10 = '_10', _11 = '_11', _12 = '_12', _13 = '_13', _14 = '_14', _15 = '_15', _16 = '_16', _17 = '_17', _18 = '_18', _19 = '_19', _20 = '_20', _21 = '_21', _22 = '_22', _23 = '_23', _24 = '_24', _25 = '_25', _26 = '_26', _27 = '_27', _28 = '_28', _29 = '_29', _30 = '_30', _31 = '_31', _32 = '_32', _33 = '_33', _34 = '_34', _35 = '_35', _36 = '_36', _37 = '_37', _38 = '_38', _39 = '_39', _40 = '_40';
|
||||
</script>
|
||||
|
||||
<Echo let:dummy>
|
||||
<p>{_0}{_1}{_2}{_3}{_4}{_5}{_6}{_7}{_8}{_9}{_10}{_11}{_12}{_13}{_14}{_15}{_16}{_17}{_18}{_19}{_20}{_21}{_22}{_23}{_24}{_25}{_26}{_27}{_28}{_29}{_30}{_31}{_32}{_33}{_34}{_35}{_36}{_37}{_38}{_39}{_40}</p>
|
||||
<p>{dummy}</p>
|
||||
</Echo>
|
||||
|
@ -0,0 +1,11 @@
|
||||
<script>
|
||||
export let _0 = '_0', _1 = '_1', _2 = '_2', _3 = '_3', _4 = '_4', _5 = '_5', _6 = '_6', _7 = '_7', _8 = '_8', _9 = '_9', _10 = '_10', _11 = '_11', _12 = '_12', _13 = '_13', _14 = '_14', _15 = '_15', _16 = '_16', _17 = '_17', _18 = '_18', _19 = '_19', _20 = '_20', _21 = '_21', _22 = '_22', _23 = '_23', _24 = '_24', _25 = '_25', _26 = '_26', _27 = '_27', _28 = '_28', _29 = '_29', _30 = '_30', _31 = '_31', _32 = '_32', _33 = '_33', _34 = '_34', _35 = '_35', _36 = '_36', _37 = '_37', _38 = '_38', _39 = '_39', _40 = '_40';
|
||||
let dummy = 0;
|
||||
function increment () {
|
||||
dummy = 1;
|
||||
}
|
||||
</script>
|
||||
|
||||
<p>{_0}{_1}{_2}{_3}{_4}{_5}{_6}{_7}{_8}{_9}{_10}{_11}{_12}{_13}{_14}{_15}{_16}{_17}{_18}{_19}{_20}{_21}{_22}{_23}{_24}{_25}{_26}{_27}{_28}{_29}{_30}{_31}{_32}{_33}{_34}{_35}{_36}{_37}{_38}{_39}{_40}</p>
|
||||
<slot dummy={dummy}></slot>
|
||||
<button on:click={increment}></button>
|
@ -0,0 +1,41 @@
|
||||
export default {
|
||||
html: `
|
||||
<p>_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31_32_33_34_35_36_37_38_39_40</p>
|
||||
<p>0</p>
|
||||
<p>0</p>
|
||||
<button></button>
|
||||
`,
|
||||
|
||||
async test({ assert, component, target, window }) {
|
||||
// change from inside
|
||||
const button = target.querySelector('button');
|
||||
await button.dispatchEvent(new window.MouseEvent('click'));
|
||||
|
||||
assert.htmlEqual(target.innerHTML, `
|
||||
<p>_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31_32_33_34_35_36_37_38_39_40</p>
|
||||
<p>0</p>
|
||||
<p>1</p>
|
||||
<button></button>
|
||||
`);
|
||||
|
||||
// change from outside
|
||||
component._0 = 'a';
|
||||
|
||||
assert.htmlEqual(target.innerHTML, `
|
||||
<p>_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31_32_33_34_35_36_37_38_39_40</p>
|
||||
<p>a</p>
|
||||
<p>1</p>
|
||||
<button></button>
|
||||
`);
|
||||
|
||||
// change from outside through props
|
||||
component._40 = 'b';
|
||||
|
||||
assert.htmlEqual(target.innerHTML, `
|
||||
<p>_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31_32_33_34_35_36_37_38_39b</p>
|
||||
<p>a</p>
|
||||
<p>1</p>
|
||||
<button></button>
|
||||
`);
|
||||
}
|
||||
};
|
@ -0,0 +1,12 @@
|
||||
<script>
|
||||
import Echo from './Echo.svelte';
|
||||
|
||||
export let _0 = 0, _40;
|
||||
|
||||
</script>
|
||||
|
||||
<Echo _40={_40} let:dummy>
|
||||
<p>{_0}</p>
|
||||
<p>{dummy}</p>
|
||||
</Echo>
|
||||
|
@ -0,0 +1,13 @@
|
||||
<script>
|
||||
export let _0 = '_0', _1 = '_1', _2 = '_2', _3 = '_3', _4 = '_4', _5 = '_5', _6 = '_6', _7 = '_7', _8 = '_8', _9 = '_9', _10 = '_10', _11 = '_11', _12 = '_12', _13 = '_13', _14 = '_14', _15 = '_15', _16 = '_16', _17 = '_17', _18 = '_18', _19 = '_19', _20 = '_20', _21 = '_21', _22 = '_22', _23 = '_23', _24 = '_24', _25 = '_25', _26 = '_26', _27 = '_27', _28 = '_28', _29 = '_29', _30 = '_30', _31 = '_31', _32 = '_32', _33 = '_33', _34 = '_34', _35 = '_35', _36 = '_36', _37 = '_37', _38 = '_38', _39 = '_39', _40 = '_40';
|
||||
export let b = 'b';
|
||||
let dummy = 0;
|
||||
function increment () {
|
||||
dummy = 1;
|
||||
}
|
||||
</script>
|
||||
|
||||
<p>{_0}{_1}{_2}{_3}{_4}{_5}{_6}{_7}{_8}{_9}{_10}{_11}{_12}{_13}{_14}{_15}{_16}{_17}{_18}{_19}{_20}{_21}{_22}{_23}{_24}{_25}{_26}{_27}{_28}{_29}{_30}{_31}{_32}{_33}{_34}{_35}{_36}{_37}{_38}{_39}{_40}</p>
|
||||
<p>{b}</p>
|
||||
<slot dummy={dummy}></slot>
|
||||
<button on:click={increment}></button>
|
@ -0,0 +1,49 @@
|
||||
export default {
|
||||
html: `
|
||||
<p>_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31_32_33_34_35_36_37_38_39_40</p>
|
||||
<p>b</p>
|
||||
<p>-0-1-2-3-4-5-6-7-8-9-10-11-12-13-14-15-16-17-18-19-20-21-22-23-24-25-26-27-28-29-30-31-32-33-34-35-36-37-38-39-40</p>
|
||||
<p>0</p>
|
||||
<p>0</p>
|
||||
<button></button>
|
||||
`,
|
||||
|
||||
async test({ assert, component, target, window }) {
|
||||
// change from inside
|
||||
const button = target.querySelector('button');
|
||||
await button.dispatchEvent(new window.MouseEvent('click'));
|
||||
|
||||
assert.htmlEqual(target.innerHTML, `
|
||||
<p>_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31_32_33_34_35_36_37_38_39_40</p>
|
||||
<p>b</p>
|
||||
<p>-0-1-2-3-4-5-6-7-8-9-10-11-12-13-14-15-16-17-18-19-20-21-22-23-24-25-26-27-28-29-30-31-32-33-34-35-36-37-38-39-40</p>
|
||||
<p>0</p>
|
||||
<p>1</p>
|
||||
<button></button>
|
||||
`);
|
||||
|
||||
// change from outside
|
||||
component.a = 'AA';
|
||||
|
||||
assert.htmlEqual(target.innerHTML, `
|
||||
<p>_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31_32_33_34_35_36_37_38_39_40</p>
|
||||
<p>b</p>
|
||||
<p>-0-1-2-3-4-5-6-7-8-9-10-11-12-13-14-15-16-17-18-19-20-21-22-23-24-25-26-27-28-29-30-31-32-33-34-35-36-37-38-39-40</p>
|
||||
<p>AA</p>
|
||||
<p>1</p>
|
||||
<button></button>
|
||||
`);
|
||||
|
||||
// change from outside through props
|
||||
component.b = 'BB';
|
||||
|
||||
assert.htmlEqual(target.innerHTML, `
|
||||
<p>_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15_16_17_18_19_20_21_22_23_24_25_26_27_28_29_30_31_32_33_34_35_36_37_38_39_40</p>
|
||||
<p>BB</p>
|
||||
<p>-0-1-2-3-4-5-6-7-8-9-10-11-12-13-14-15-16-17-18-19-20-21-22-23-24-25-26-27-28-29-30-31-32-33-34-35-36-37-38-39-40</p>
|
||||
<p>AA</p>
|
||||
<p>1</p>
|
||||
<button></button>
|
||||
`);
|
||||
}
|
||||
};
|
@ -0,0 +1,13 @@
|
||||
<script>
|
||||
import Echo from './Echo.svelte';
|
||||
export let _0 = '-0', _1 = '-1', _2 = '-2', _3 = '-3', _4 = '-4', _5 = '-5', _6 = '-6', _7 = '-7', _8 = '-8', _9 = '-9', _10 = '-10', _11 = '-11', _12 = '-12', _13 = '-13', _14 = '-14', _15 = '-15', _16 = '-16', _17 = '-17', _18 = '-18', _19 = '-19', _20 = '-20', _21 = '-21', _22 = '-22', _23 = '-23', _24 = '-24', _25 = '-25', _26 = '-26', _27 = '-27', _28 = '-28', _29 = '-29', _30 = '-30', _31 = '-31', _32 = '-32', _33 = '-33', _34 = '-34', _35 = '-35', _36 = '-36', _37 = '-37', _38 = '-38', _39 = '-39', _40 = '-40';
|
||||
export let a = 0, b;
|
||||
|
||||
</script>
|
||||
|
||||
<Echo b={b} let:dummy>
|
||||
<p>{_0}{_1}{_2}{_3}{_4}{_5}{_6}{_7}{_8}{_9}{_10}{_11}{_12}{_13}{_14}{_15}{_16}{_17}{_18}{_19}{_20}{_21}{_22}{_23}{_24}{_25}{_26}{_27}{_28}{_29}{_30}{_31}{_32}{_33}{_34}{_35}{_36}{_37}{_38}{_39}{_40}</p>
|
||||
<p>{a}</p>
|
||||
<p>{dummy}</p>
|
||||
</Echo>
|
||||
|
Loading…
Reference in new issue