svelte
Advanced tools
Comparing version 5.0.0-next.76 to 5.0.0-next.77
@@ -5,3 +5,3 @@ { | ||
"license": "MIT", | ||
"version": "5.0.0-next.76", | ||
"version": "5.0.0-next.77", | ||
"type": "module", | ||
@@ -8,0 +8,0 @@ "types": "./types/index.d.ts", |
@@ -473,8 +473,10 @@ import * as b from '../../../utils/builders.js'; | ||
left, | ||
b.assignment( | ||
node.operator, | ||
/** @type {import('estree').Pattern} */ (visit(node.left)), | ||
value | ||
), | ||
b.literal(true) | ||
b.sequence([ | ||
b.assignment( | ||
node.operator, | ||
/** @type {import('estree').Pattern} */ (visit(node.left)), | ||
value | ||
), | ||
b.call(left) | ||
]) | ||
); | ||
@@ -481,0 +483,0 @@ } else { |
import { run } from '../../../common.js'; | ||
import { pre_effect, user_effect } from '../../reactivity/effects.js'; | ||
import { current_component_context, deep_read_state, get, untrack } from '../../runtime.js'; | ||
import { | ||
current_component_context, | ||
deep_read_state, | ||
flush_local_render_effects, | ||
get, | ||
untrack | ||
} from '../../runtime.js'; | ||
@@ -19,2 +25,6 @@ /** | ||
callbacks.b.forEach(run); | ||
// beforeUpdate might change state that affects rendering, ensure the render effects following from it | ||
// are batched up with the current run. Avoids for example child components rerunning when they're | ||
// now hidden because beforeUpdate did set an if block to false. | ||
flush_local_render_effects(); | ||
}); | ||
@@ -21,0 +31,0 @@ } |
@@ -151,14 +151,5 @@ import { DEV } from 'esm-env'; | ||
} | ||
const sync = current_effect !== null && (current_effect.f & RENDER_EFFECT) !== 0; | ||
return create_effect( | ||
PRE_EFFECT, | ||
() => { | ||
const val = fn(); | ||
flush_local_render_effects(); | ||
return val; | ||
}, | ||
sync | ||
); | ||
return create_effect(PRE_EFFECT, fn, sync); | ||
} | ||
@@ -165,0 +156,0 @@ |
@@ -213,3 +213,3 @@ import { DEV } from 'esm-env'; | ||
return function (/** @type {V} */ value, mutation = false) { | ||
return function (/** @type {V} */ value) { | ||
var current = get(current_value); | ||
@@ -230,5 +230,5 @@ | ||
if (arguments.length > 0) { | ||
if (mutation || (immutable ? value !== current : safe_not_equal(value, current))) { | ||
if (!current_value.equals(value)) { | ||
from_child = true; | ||
set(inner_current_value, mutation ? current : value); | ||
set(inner_current_value, value); | ||
get(current_value); // force a synchronisation immediately | ||
@@ -235,0 +235,0 @@ } |
@@ -85,5 +85,7 @@ import { DEV } from 'esm-env'; | ||
var source = this.#sources.get(value); | ||
// We should always track the version in case | ||
// the Set ever gets this value in the future. | ||
get(this.#version); | ||
if (source === undefined) { | ||
get(this.#version); | ||
return false; | ||
@@ -90,0 +92,0 @@ } |
@@ -9,3 +9,3 @@ // generated during release, do not modify | ||
*/ | ||
export const VERSION = '5.0.0-next.76'; | ||
export const VERSION = '5.0.0-next.77'; | ||
export const PUBLIC_VERSION = '5'; |
Sorry, the diff of this file is not supported yet
1945572
42453