@fink/loxia
Version:
A fink to JavaScript compiler.
118 lines (97 loc) • 2.84 kB
JavaScript
import { init_ctx as init_ctx_0 } from "../ir/context.js";
import { optimize_unused as optimize_unused_0 } from "./unused.js";
import { optimize_refs as optimize_refs_0 } from "./refs.js";
import { optimize_tails as optimize_tails_0 } from "./tail-calls.js";
import { optimize_names as optimize_names_0 } from "./short-ids.js";
const maybe_opt_refs_0 = (ir_0, ctx_0) => {
/* istanbul ignore else */
if (null != ctx_0) {
const itm_0 = ctx_0.optimize;
/* istanbul ignore else */
if (null != itm_0) {
/* istanbul ignore else */
if (itm_0.refs === true) {
const result_2 = optimize_refs_0(ir_0, ctx_0);
return result_2;
}
}
}
return [ir_0, ctx_0];
};
const maybe_opt_tails_0 = (ir_1, ctx_1) => {
/* istanbul ignore else */
if (null != ctx_1) {
const itm_2 = ctx_1.optimize;
/* istanbul ignore else */
if (null != itm_2) {
/* istanbul ignore else */
if (itm_2.tails === true) {
const result_5 = optimize_tails_0(ir_1, ctx_1);
return result_5;
}
}
}
return [ir_1, ctx_1];
};
const maybe_opt_unused_0 = (ir_2, ctx_2) => {
/* istanbul ignore else */
if (null != ctx_2) {
const itm_4 = ctx_2.optimize;
/* istanbul ignore else */
if (null != itm_4) {
/* istanbul ignore else */
if (itm_4.unused === true) {
const ppr_0 = (prtl_0 => {
const pfn_1 = init_ctx_0(ir_2, prtl_0);
return pfn_1;
})(ctx_2);
const ppr_1 = (prtl_1 => {
const pfn_3 = optimize_unused_0(ir_2, prtl_1);
return pfn_3;
})(ppr_0);
return ppr_1;
}
}
}
return [ir_2, ctx_2];
};
const maybe_opt_names_0 = (ir_3, ctx_3) => {
/* istanbul ignore else */
if (null != ctx_3) {
const itm_6 = ctx_3.optimize;
/* istanbul ignore else */
if (null != itm_6) {
/* istanbul ignore else */
if (itm_6.names === true) {
const result_11 = optimize_names_0(ir_3, ctx_3);
return result_11;
}
}
}
return [ir_3, ctx_3];
};
const optimize_0 = (exprs_0, options_0) => {
const ctx_4 = init_ctx_0(exprs_0, options_0);
const ppr_2 = (prtl_2 => {
const pfn_5 = maybe_opt_refs_0(...prtl_2);
return pfn_5;
})([exprs_0, ctx_4]);
const ppr_3 = (prtl_3 => {
const pfn_7 = maybe_opt_tails_0(...prtl_3);
return pfn_7;
})(ppr_2);
const ppr_4 = (prtl_4 => {
const pfn_9 = maybe_opt_unused_0(...prtl_4);
return pfn_9;
})(ppr_3);
const ppr_5 = (prtl_5 => {
const pfn_11 = maybe_opt_names_0(...prtl_5);
return pfn_11;
})(ppr_4);
return ppr_5;
};
export const maybe_opt_refs = maybe_opt_refs_0,
maybe_opt_tails = maybe_opt_tails_0,
maybe_opt_unused = maybe_opt_unused_0,
maybe_opt_names = maybe_opt_names_0,
optimize = optimize_0;