diff --git a/store.mjs b/store.mjs index faafe31575..c4b98e9072 100644 --- a/store.mjs +++ b/store.mjs @@ -1,8 +1,9 @@ import { run_all, noop, get_store_value, safe_not_equal } from './internal'; -export function readable(start, value) { - const { set, subscribe } = writable(value, () => start(set)); - return { subscribe }; +export function readable(value, start) { + return { + subscribe: writable(value, start).subscribe + }; } export function writable(value, start = noop) { @@ -25,7 +26,7 @@ export function writable(value, start = noop) { function subscribe(run, invalidate = noop) { const subscriber = [run, invalidate]; subscribers.push(subscriber); - if (subscribers.length === 1) stop = start() || noop; + if (subscribers.length === 1) stop = start(set) || noop; run(value); return () => { @@ -45,7 +46,7 @@ export function derive(stores, fn) { const auto = fn.length < 2; let value = {}; - return readable(set => { + return readable(undefined, set => { let inited = false; const values = []; diff --git a/test/store/index.js b/test/store/index.js index f993c3a253..f077b183e1 100644 --- a/test/store/index.js +++ b/test/store/index.js @@ -66,7 +66,7 @@ describe('store', () => { let running; let tick; - const store = readable(set => { + const store = readable(undefined, set => { tick = set; running = true; @@ -192,7 +192,7 @@ describe('store', () => { describe('get', () => { it('gets the current value of a store', () => { - const store = readable(() => {}, 42); + const store = readable(42, () => {}); assert.equal(get(store), 42); }); });