improve output size by reusing resolved_promise

pull/5702/head
Ivan Hofer 5 years ago
parent 6063887469
commit febaea9bc4

@ -0,0 +1 @@
export const resolved_promise = Promise.resolve();

@ -1,5 +1,6 @@
import { run_all } from './utils'; import { run_all } from './utils';
import { set_current_component } from './lifecycle'; import { set_current_component } from './lifecycle';
import { resolved_promise } from '../../constants';
export const dirty_components = []; export const dirty_components = [];
export const intros = { enabled: false }; export const intros = { enabled: false };
@ -8,7 +9,6 @@ export const binding_callbacks = [];
const render_callbacks = []; const render_callbacks = [];
const flush_callbacks = []; const flush_callbacks = [];
const resolved_promise = Promise.resolve();
let update_scheduled = false; let update_scheduled = false;
export function schedule_update() { export function schedule_update() {

@ -5,12 +5,13 @@ import { create_rule, delete_rule } from './style_manager';
import { custom_event } from './dom'; import { custom_event } from './dom';
import { add_render_callback } from './scheduler'; import { add_render_callback } from './scheduler';
import { TransitionConfig } from '../transition'; import { TransitionConfig } from '../transition';
import { resolved_promise } from '../../constants';
let promise: Promise<void>|null; let promise: Promise<void>|null;
function wait() { function wait() {
if (!promise) { if (!promise) {
promise = Promise.resolve(); promise = resolved_promise;
promise.then(() => { promise.then(() => {
promise = null; promise = null;
}); });

@ -1,6 +1,7 @@
import { Readable, writable } from 'svelte/store'; import { Readable, writable } from 'svelte/store';
import { loop, now, Task } from 'svelte/internal'; import { loop, now, Task } from 'svelte/internal';
import { is_date } from './utils'; import { is_date } from './utils';
import { resolved_promise } from '../../constants';
interface TickContext<T> { interface TickContext<T> {
inv_mass: number; inv_mass: number;
@ -89,7 +90,7 @@ export function spring<T=any>(value?: T, opts: SpringOpts = {}): Spring<T> {
last_time = now(); last_time = now();
last_value = new_value; last_value = new_value;
store.set(value = target_value); store.set(value = target_value);
return Promise.resolve(); return resolved_promise;
} else if (opts.soft) { } else if (opts.soft) {
const rate = opts.soft === true ? .5 : +opts.soft; const rate = opts.soft === true ? .5 : +opts.soft;
inv_mass_recovery_rate = 1 / (rate * 60); inv_mass_recovery_rate = 1 / (rate * 60);

@ -2,6 +2,7 @@ import { Readable, writable } from 'svelte/store';
import { assign, is_function, loop, now, Task } from 'svelte/internal'; import { assign, is_function, loop, now, Task } from 'svelte/internal';
import { linear } from 'svelte/easing'; import { linear } from 'svelte/easing';
import { is_date } from './utils'; import { is_date } from './utils';
import { resolved_promise } from '../../constants';
function get_interpolator(a, b) { function get_interpolator(a, b) {
if (a === b || a !== a) return () => a; if (a === b || a !== a) return () => a;
@ -78,7 +79,7 @@ export function tweened<T>(value?: T, defaults: Options<T> = {}): Tweened<T> {
function set(new_value: T, opts?: Options<T>) { function set(new_value: T, opts?: Options<T>) {
if (value == null) { if (value == null) {
store.set(value = new_value); store.set(value = new_value);
return Promise.resolve(); return resolved_promise;
} }
target_value = new_value; target_value = new_value;
@ -100,7 +101,7 @@ export function tweened<T>(value?: T, defaults: Options<T> = {}): Tweened<T> {
} }
store.set(value = target_value); store.set(value = target_value);
return Promise.resolve(); return resolved_promise;
} }
const start = now() + delay; const start = now() + delay;

@ -1,6 +1,6 @@
{ {
"extends": "../../tsconfig.json", "extends": "../../tsconfig.json",
"include": ["."], "include": [".", "../constants.ts"],
"compilerOptions": { "compilerOptions": {
"lib": ["es2015", "dom", "dom.iterable"], "lib": ["es2015", "dom", "dom.iterable"],

Loading…
Cancel
Save