fact()

in src/js/other-websites/fathom.js [1727:1757]


        fact(fnode, leftType) {
            const doneKinds = new Set();
            const result = {};
            let haveSubfacts = 0;
            for (let call of reversed(this._calls)) {
                // If we've already called a call of this kind, then forget it.
                if (!doneKinds.has(call.kind)) {
                    doneKinds.add(call.kind);

                    if (~haveSubfacts & call.possibleSubfacts) {
                        // This call might provide a subfact we are missing.
                        const newSubfacts = call(fnode);

                        // We start with an empty object, so we're okay here.
                        // eslint-disable-next-line guard-for-in
                        for (let subfact in newSubfacts) {
                            // A props() callback could insert arbitrary keys into
                            // the result, but it shouldn't matter, because nothing
                            // pays any attention to them.
                            if (!result.hasOwnProperty(subfact)) {
                                result[subfact] = newSubfacts[subfact];
                            }
                            haveSubfacts |= SUBFACTS[subfact];
                        }
                    }
                }
            }
            this._checkAtMost(result);
            this._checkTypeIn(result, leftType);
            return result;
        }