chore: avoid creating unnecessary thunks (#9841)

Co-authored-by: Rich Harris <rich.harris@vercel.com>
pull/9833/head
Rich Harris 2 years ago committed by GitHub
parent 8dfb2894b4
commit 26c6d6f95d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -0,0 +1,5 @@
---
'svelte': patch
---
chore: avoid creating thunk for call expressions when appropriate

@ -370,9 +370,18 @@ export function template(elements, expressions) {
/**
* @param {import('estree').Expression | import('estree').BlockStatement} expression
* @returns {import('estree').ArrowFunctionExpression}
* @returns {import('estree').Expression}
*/
export function thunk(expression) {
if (
expression.type === 'CallExpression' &&
expression.callee.type !== 'Super' &&
expression.callee.type !== 'MemberExpression' &&
expression.arguments.length === 0
) {
return expression.callee;
}
return arrow([], expression);
}

@ -21,9 +21,9 @@ export default function Main($$anchor, $$props) {
var custom_element_1 = $.sibling($.sibling(svg_1));
/* Update */
$.attr_effect(div, "foobar", () => y());
$.attr_effect(svg_1, "viewBox", () => y());
$.set_custom_element_data_effect(custom_element_1, "fooBar", () => y());
$.attr_effect(div, "foobar", y);
$.attr_effect(svg_1, "viewBox", y);
$.set_custom_element_data_effect(custom_element_1, "fooBar", y);
var node_foobar;
var svg_viewBox;
@ -45,4 +45,4 @@ export default function Main($$anchor, $$props) {
$.close_frag($$anchor, fragment);
$.pop();
}
}

@ -11,7 +11,7 @@ export default function Svelte_element($$anchor, $$props) {
var fragment = $.comment($$anchor);
var node = $.child_frag(fragment);
$.element(node, () => tag());
$.element(node, tag);
$.close_frag($$anchor, fragment);
$.pop();
}

Loading…
Cancel
Save