pull/17038/head
Rich Harris 4 days ago
parent 14851b4d90
commit 2a2dfc8f36

@ -184,7 +184,9 @@ export function build_component(node, component_name, context) {
); );
}); });
return should_wrap_in_derived ? b.call('$.get', memoizer.add(value, metadata)) : value; return should_wrap_in_derived
? b.call('$.get', memoizer.add(value, metadata, true))
: value;
} }
); );

@ -28,15 +28,19 @@ export class Memoizer {
/** /**
* @param {Expression} expression * @param {Expression} expression
* @param {ExpressionMetadata} metadata * @param {ExpressionMetadata} metadata
* @param {boolean} memoize_if_state
*/ */
add(expression, metadata) { add(expression, metadata, memoize_if_state = false) {
for (const binding of metadata.dependencies) { for (const binding of metadata.dependencies) {
if (binding.blocker) { if (binding.blocker) {
this.#blockers.add(binding.blocker); this.#blockers.add(binding.blocker);
} }
} }
if (!metadata.has_call && !metadata.has_await) { const should_memoize =
metadata.has_call || metadata.has_await || (memoize_if_state && metadata.has_state);
if (!should_memoize) {
// no memoization required // no memoization required
return expression; return expression;
} }

Loading…
Cancel
Save