@fink/loxia
Version:
A fink to JavaScript compiler.
132 lines (107 loc) • 2.87 kB
JavaScript
const {
init_ctx: init_ctx_0
} = require("../ir/context.js");
const {
optimize_unused: optimize_unused_0
} = require("./unused.js");
const {
optimize_refs: optimize_refs_0
} = require("./refs.js");
const {
optimize_tails: optimize_tails_0
} = require("./tail-calls.js");
const {
optimize_names: optimize_names_0
} = require("./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;
};
exports.maybe_opt_refs = maybe_opt_refs_0;
exports.maybe_opt_tails = maybe_opt_tails_0;
exports.maybe_opt_unused = maybe_opt_unused_0;
exports.maybe_opt_names = maybe_opt_names_0;
exports.optimize = optimize_0;