mirror of https://github.com/sveltejs/svelte
				
				
				
			
							parent
							
								
									65dc6d693b
								
							
						
					
					
						commit
						d58996534d
					
				@ -0,0 +1,38 @@
 | 
				
			|||||||
 | 
					const tasks = new Set();
 | 
				
			||||||
 | 
					let running = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function run_tasks() {
 | 
				
			||||||
 | 
						tasks.forEach(task => {
 | 
				
			||||||
 | 
							if (!task[0]()) {
 | 
				
			||||||
 | 
								tasks.delete(task);
 | 
				
			||||||
 | 
								task[1]();
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						running = tasks.size > 0;
 | 
				
			||||||
 | 
						if (running) requestAnimationFrame(run_tasks);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export function clear_loops() {
 | 
				
			||||||
 | 
						// for testing...
 | 
				
			||||||
 | 
						tasks.forEach(task => tasks.delete(task));
 | 
				
			||||||
 | 
						running = false;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export function loop(fn) {
 | 
				
			||||||
 | 
						let task;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (!running) {
 | 
				
			||||||
 | 
							running = true;
 | 
				
			||||||
 | 
							requestAnimationFrame(run_tasks);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return {
 | 
				
			||||||
 | 
							promise: new Promise(fulfil => {
 | 
				
			||||||
 | 
								tasks.add(task = [fn, fulfil]);
 | 
				
			||||||
 | 
							}),
 | 
				
			||||||
 | 
							abort() {
 | 
				
			||||||
 | 
								tasks.delete(task);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -1,36 +1,3 @@
 | 
				
			|||||||
const tasks = new Set();
 | 
					 | 
				
			||||||
let running = false;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function run_tasks() {
 | 
					 | 
				
			||||||
	tasks.forEach(task => {
 | 
					 | 
				
			||||||
		if (!task[0]()) {
 | 
					 | 
				
			||||||
			tasks.delete(task);
 | 
					 | 
				
			||||||
			task[1]();
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	});
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	running = tasks.size > 0;
 | 
					 | 
				
			||||||
	if (running) requestAnimationFrame(run_tasks);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export function add_task(fn) {
 | 
					 | 
				
			||||||
	let task;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if (!running) {
 | 
					 | 
				
			||||||
		running = true;
 | 
					 | 
				
			||||||
		requestAnimationFrame(run_tasks);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	return {
 | 
					 | 
				
			||||||
		promise: new Promise(fulfil => {
 | 
					 | 
				
			||||||
			tasks.add(task = [fn, fulfil]);
 | 
					 | 
				
			||||||
		}),
 | 
					 | 
				
			||||||
		abort() {
 | 
					 | 
				
			||||||
			tasks.delete(task);
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export function is_date(obj) {
 | 
					export function is_date(obj) {
 | 
				
			||||||
	return Object.prototype.toString.call(obj) === '[object Date]';
 | 
						return Object.prototype.toString.call(obj) === '[object Date]';
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
					Loading…
					
					
				
		Reference in new issue