From 11aa510de1436226927aaca84fe61cf798e5e0a8 Mon Sep 17 00:00:00 2001 From: Brian Takita Date: Thu, 11 Jul 2019 03:42:54 -0400 Subject: [PATCH] Optimization: Single for loop instead of 2 forEach loops --- src/runtime/store/index.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/runtime/store/index.ts b/src/runtime/store/index.ts index 98761b847f..7f94351437 100644 --- a/src/runtime/store/index.ts +++ b/src/runtime/store/index.ts @@ -70,9 +70,12 @@ export function writable(value: T, start: StartStopNotifier = noop): Writa if (safe_not_equal(value, new_value)) { value = new_value; if (stop) { // store is ready - subscribers.forEach((s) => s[1]()); const run_queue = !subscriber_queue.length; - subscribers.forEach(s => subscriber_queue.push(s, value)); + for (let i = 0; i < subscribers.length; i++) { + const s = subscribers[i]; + s[1](); + subscriber_queue.push(s, value); + } if (run_queue) { let s; while (s = subscriber_queue.shift()) {