Skip to content

Commit f294a7a

Browse files
committed
more efficient generated code
1 parent faa8a12 commit f294a7a

File tree

2 files changed

+9
-13
lines changed
  • packages/svelte/src

2 files changed

+9
-13
lines changed

packages/svelte/src/compiler/phases/3-transform/client/visitors/template.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2743,10 +2743,9 @@ export const template_visitors = {
27432743
'$.bind_property',
27442744
b.literal(node.name),
27452745
b.literal(property.event),
2746-
b.literal(property.bidirectional ? 'set' : 'get'),
27472746
state.node,
2748-
getter,
2749-
setter
2747+
setter,
2748+
property.bidirectional && getter
27502749
);
27512750
} else {
27522751
// special cases

packages/svelte/src/internal/client/dom/elements/bindings/universal.js

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -33,28 +33,25 @@ export function bind_content_editable(property, element, get_value, update) {
3333
/**
3434
* @param {string} property
3535
* @param {string} event_name
36-
* @param {'get' | 'set'} type
3736
* @param {Element} element
38-
* @param {() => unknown} get_value
39-
* @param {(value: unknown) => void} update
37+
* @param {(value: unknown) => void} set
38+
* @param {() => unknown} [get]
4039
* @returns {void}
4140
*/
42-
export function bind_property(property, event_name, type, element, get_value, update) {
41+
export function bind_property(property, event_name, element, set, get) {
4342
var handler = () => {
4443
// @ts-ignore
45-
update(element[property]);
44+
set(element[property]);
4645
};
4746

4847
element.addEventListener(event_name, handler);
4948

50-
if (type === 'set') {
49+
if (get) {
5150
render_effect(() => {
5251
// @ts-ignore
53-
element[property] = get_value();
52+
element[property] = get();
5453
});
55-
}
56-
57-
if (type === 'get') {
54+
} else {
5855
handler();
5956
}
6057

0 commit comments

Comments
 (0)