/* @flow */ export function resolveScopedSlots ( fns: ScopedSlotsData, // see flow/vnode res?: Object, // the following are added in 2.6 hasDynamicKeys?: boolean, contentHashKey?: number ): { [key: string]: Function, $stable: boolean } { res = res || { $stable: !hasDynamicKeys } for (let i = 0; i < fns.length; i++) { const slot = fns[i] if (Array.isArray(slot)) { resolveScopedSlots(slot, res, hasDynamicKeys) } else if (slot) { // marker for reverse proxying v-slot without scope on this.$slots if (slot.proxy) { slot.fn.proxy = true } res[slot.key] = slot.fn } } if (contentHashKey) { (res: any).$key = contentHashKey } return res }