@motionone/svelte
Advanced tools
Comparing version 10.5.0 to 10.5.2
@@ -178,13 +178,30 @@ function noop$1() { } | ||
} | ||
let flushing = false; | ||
// flush() calls callbacks in this order: | ||
// 1. All beforeUpdate callbacks, in order: parents before children | ||
// 2. All bind:this callbacks, in reverse order: children before parents. | ||
// 3. All afterUpdate callbacks, in order: parents before children. EXCEPT | ||
// for afterUpdates called during the initial onMount, which are called in | ||
// reverse order: children before parents. | ||
// Since callbacks might update component values, which could trigger another | ||
// call to flush(), the following steps guard against this: | ||
// 1. During beforeUpdate, any updated components will be added to the | ||
// dirty_components array and will cause a reentrant call to flush(). Because | ||
// the flush index is kept outside the function, the reentrant call will pick | ||
// up where the earlier call left off and go through all dirty components. The | ||
// current_component value is saved and restored so that the reentrant call will | ||
// not interfere with the "parent" flush() call. | ||
// 2. bind:this callbacks cannot trigger new flush() calls. | ||
// 3. During afterUpdate, any updated components will NOT have their afterUpdate | ||
// callback called a second time; the seen_callbacks set, outside the flush() | ||
// function, guarantees this behavior. | ||
const seen_callbacks = new Set(); | ||
let flushidx = 0; // Do *not* move this inside the flush() function | ||
function flush() { | ||
if (flushing) | ||
return; | ||
flushing = true; | ||
const saved_component = current_component; | ||
do { | ||
// first, call beforeUpdate functions | ||
// and update components | ||
for (let i = 0; i < dirty_components.length; i += 1) { | ||
const component = dirty_components[i]; | ||
while (flushidx < dirty_components.length) { | ||
const component = dirty_components[flushidx]; | ||
flushidx++; | ||
set_current_component(component); | ||
@@ -195,2 +212,3 @@ update(component.$$); | ||
dirty_components.length = 0; | ||
flushidx = 0; | ||
while (binding_callbacks.length) | ||
@@ -215,4 +233,4 @@ binding_callbacks.pop()(); | ||
update_scheduled = false; | ||
flushing = false; | ||
seen_callbacks.clear(); | ||
set_current_component(saved_component); | ||
} | ||
@@ -1494,3 +1512,3 @@ function update($$) { | ||
/* src/Motion.svelte generated by Svelte v3.44.2 */ | ||
/* src/Motion.svelte generated by Svelte v3.45.0 */ | ||
@@ -1497,0 +1515,0 @@ function create_fragment(ctx) { |
{ | ||
"name": "@motionone/svelte", | ||
"version": "10.5.0", | ||
"version": "10.5.2", | ||
"description": "A tiny, performant animation library for Svelte", | ||
@@ -17,3 +17,3 @@ "author": "Matt Perry", | ||
"dependencies": { | ||
"@motionone/dom": "^10.5.0", | ||
"@motionone/dom": "^10.5.2", | ||
"tslib": "^2.3.1" | ||
@@ -34,3 +34,3 @@ }, | ||
}, | ||
"gitHead": "ec7b5e4b1fb03194b1f8fc657092426bbba0d6db" | ||
"gitHead": "580f3fbffc18931ccdb627e01ac2d50f087d01af" | ||
} |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
240412
1614
Updated@motionone/dom@^10.5.2