pull/17038/head
Rich Harris 3 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 {ExpressionMetadata} metadata
* @param {boolean} memoize_if_state
*/
add(expression, metadata) {
add(expression, metadata, memoize_if_state = false) {
for (const binding of metadata.dependencies) {
if (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
return expression;
}

Loading…
Cancel
Save