Return the specified iterable if the source iterable is empty
function or(other) {
    return function (source) {
        return __asyncGenerator(this, arguments, function* () {
            var e_28, _a;
            let hasYieldedItem = false;
            try {
                for (var source_1 = __asyncValues(source), source_1_1; source_1_1 = yield __await(source_1.next()), !source_1_1.done;) {
                    const item = source_1_1.value;
                    yield yield __await(item);
                    hasYieldedItem = true;
                }
            }
            catch (e_28_1) { e_28 = { error: e_28_1 }; }
            finally {
                try {
                    if (source_1_1 && !source_1_1.done && (_a = source_1.return)) yield __await(_a.call(source_1));
                }
                finally { if (e_28) throw e_28.error; }
            }
            if (!hasYieldedItem) {
                yield __await(yield* __asyncDelegator(__asyncValues(other)));
            }
        });
    };
}