Convert src/runtime/internal/spread.ts to JavaScript

pull/8569/head
S. Elliott Johnson 3 years ago
parent 454ed91e7e
commit 2468ba1030

@ -1,41 +1,42 @@
/** @returns {{}} */
export function get_spread_update(levels, updates) { export function get_spread_update(levels, updates) {
const update = {}; const update = {};
const to_null_out = {}; const to_null_out = {};
const accounted_for = { $$scope: 1 }; const accounted_for = { $$scope: 1 };
let i = levels.length; let i = levels.length;
while (i--) { while (i--) {
const o = levels[i]; const o = levels[i];
const n = updates[i]; const n = updates[i];
if (n) { if (n) {
for (const key in o) { for (const key in o) {
if (!(key in n)) to_null_out[key] = 1; if (!(key in n))
to_null_out[key] = 1;
} }
for (const key in n) { for (const key in n) {
if (!accounted_for[key]) { if (!accounted_for[key]) {
update[key] = n[key]; update[key] = n[key];
accounted_for[key] = 1; accounted_for[key] = 1;
} }
} }
levels[i] = n; levels[i] = n;
} else { }
else {
for (const key in o) { for (const key in o) {
accounted_for[key] = 1; accounted_for[key] = 1;
} }
} }
} }
for (const key in to_null_out) { for (const key in to_null_out) {
if (!(key in update)) update[key] = undefined; if (!(key in update))
update[key] = undefined;
} }
return update; return update;
} }
/** @returns {any} */
export function get_spread_object(spread_props) { export function get_spread_object(spread_props) {
return typeof spread_props === 'object' && spread_props !== null ? spread_props : {}; return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};
} }

Loading…
Cancel
Save