updated test and fixed bug

pull/8142/head
Mathias Picker 4 years ago
parent 47d07c3e25
commit b8fcbd5e47

@ -187,11 +187,6 @@ export default class ElementWrapper extends Wrapper {
); );
} }
// the original svelte:element is never used for rendering, because
// it gets assigned a child_dynamic_element which is used in all rendering logic.
// so doing all of this on the original svelte:element will just cause double
// code, because it will be done again on the child_dynamic_element.
if (!is_original_dynamic_element) {
this.var = { this.var = {
type: 'Identifier', type: 'Identifier',
name: node.name.replace(regex_invalid_variable_identifier_characters, '_') name: node.name.replace(regex_invalid_variable_identifier_characters, '_')
@ -200,6 +195,12 @@ export default class ElementWrapper extends Wrapper {
this.void = is_void(node.name); this.void = is_void(node.name);
this.class_dependencies = []; this.class_dependencies = [];
// the original svelte:element is never used for rendering, because
// it gets assigned a child_dynamic_element which is used in all rendering logic.
// so doing all of this on the original svelte:element will just cause double
// code, because it will be done again on the child_dynamic_element.
if (!is_original_dynamic_element) {
if (this.node.children.length) { if (this.node.children.length) {
this.node.lets.forEach(l => { this.node.lets.forEach(l => {
extract_names(l.value || l.name).forEach(name => { extract_names(l.value || l.name).forEach(name => {

@ -1,6 +1,7 @@
/* generated by Svelte vX.Y.Z */ /* generated by Svelte vX.Y.Z */
import { import {
SvelteComponent, SvelteComponent,
append,
assign, assign,
bubble, bubble,
detach, detach,
@ -11,54 +12,84 @@ import {
insert, insert,
listen, listen,
noop, noop,
run_all,
safe_not_equal, safe_not_equal,
set_attributes, set_attributes,
set_custom_element_data_map set_custom_element_data_map
} from "svelte/internal"; } from "svelte/internal";
function create_dynamic_element(ctx) { function create_dynamic_element(ctx) {
let svelte_element; let svelte_element1;
let svelte_element0;
let mounted; let mounted;
let dispose; let dispose;
let svelte_element_levels = [{ class: "some-classname" }]; let svelte_element0_levels = [{ class: "inner" }];
let svelte_element_data = {}; let svelte_element0_data = {};
for (let i = 0; i < svelte_element_levels.length; i += 1) { for (let i = 0; i < svelte_element0_levels.length; i += 1) {
svelte_element_data = assign(svelte_element_data, svelte_element_levels[i]); svelte_element0_data = assign(svelte_element0_data, svelte_element0_levels[i]);
}
let svelte_element1_levels = [{ class: "outer" }];
let svelte_element1_data = {};
for (let i = 0; i < svelte_element1_levels.length; i += 1) {
svelte_element1_data = assign(svelte_element1_data, svelte_element1_levels[i]);
} }
return { return {
c() { c() {
svelte_element = element("a"); svelte_element1 = element("a");
svelte_element.textContent = "Hi"; svelte_element0 = element("span");
if ((/-/).test("span")) {
set_custom_element_data_map(svelte_element0, svelte_element0_data);
} else {
set_attributes(svelte_element0, svelte_element0_data);
}
if ((/-/).test("a")) { if ((/-/).test("a")) {
set_custom_element_data_map(svelte_element, svelte_element_data); set_custom_element_data_map(svelte_element1, svelte_element1_data);
} else { } else {
set_attributes(svelte_element, svelte_element_data); set_attributes(svelte_element1, svelte_element1_data);
} }
}, },
m(target, anchor) { m(target, anchor) {
insert(target, svelte_element, anchor); insert(target, svelte_element1, anchor);
append(svelte_element1, svelte_element0);
if (!mounted) { if (!mounted) {
dispose = listen(svelte_element, "keydown", /*keydown_handler*/ ctx[0]); dispose = [
listen(svelte_element0, "keydown", /*keydown_handler_1*/ ctx[2]),
listen(svelte_element0, "keyup", /*keyup_handler_1*/ ctx[3]),
listen(svelte_element1, "keydown", /*keydown_handler*/ ctx[0]),
listen(svelte_element1, "keyup", /*keyup_handler*/ ctx[1])
];
mounted = true; mounted = true;
} }
}, },
p(ctx, dirty) { p(ctx, dirty) {
svelte_element_data = get_spread_update(svelte_element_levels, [{ class: "some-classname" }]); svelte_element0_data = get_spread_update(svelte_element0_levels, [{ class: "inner" }]);
if ((/-/).test("span")) {
set_custom_element_data_map(svelte_element0, svelte_element0_data);
} else {
set_attributes(svelte_element0, svelte_element0_data);
}
svelte_element1_data = get_spread_update(svelte_element1_levels, [{ class: "outer" }]);
if ((/-/).test("a")) { if ((/-/).test("a")) {
set_custom_element_data_map(svelte_element, svelte_element_data); set_custom_element_data_map(svelte_element1, svelte_element1_data);
} else { } else {
set_attributes(svelte_element, svelte_element_data); set_attributes(svelte_element1, svelte_element1_data);
} }
}, },
d(detaching) { d(detaching) {
if (detaching) detach(svelte_element); if (detaching) detach(svelte_element1);
mounted = false; mounted = false;
dispose(); run_all(dispose);
} }
}; };
} }
@ -112,7 +143,19 @@ function instance($$self) {
bubble.call(this, $$self, event); bubble.call(this, $$self, event);
} }
return [keydown_handler]; function keyup_handler(event) {
bubble.call(this, $$self, event);
}
function keydown_handler_1(event) {
bubble.call(this, $$self, event);
}
function keyup_handler_1(event) {
bubble.call(this, $$self, event);
}
return [keydown_handler, keyup_handler, keydown_handler_1, keyup_handler_1];
} }
class Component extends SvelteComponent { class Component extends SvelteComponent {

@ -1,3 +1,3 @@
<svelte:element class="some-classname" this="a" on:keydown> <svelte:element class="outer" this="a" on:keydown on:keyup>
Hi <svelte:element class="inner" this="span" on:keydown on:keyup></svelte:element>
</svelte:element> </svelte:element>
Loading…
Cancel
Save