@fink/loxia
Version:
A fink to JavaScript compiler.
134 lines (117 loc) • 2.85 kB
JavaScript
const {
update_value: update_value_0
} = require("../ir/context.js");
const {
get_value: get_value_0
} = require("../ir/context.js");
const {
ident: ident_0
} = require("./identifier/init.js");
const set_js_0 = (id_0, js_0, ctx_0) => {
const result_0 = update_value_0(id_0, {
js: js_0
}, ctx_0);
return result_0;
};
const set_js2_0 = (dlst_0, js_1, ctx_1) => {
const result_1 = update_value_0(dlst_0[1][0], {
js: { ...js_1,
loc: dlst_0[0].loc
}
}, ctx_1);
return result_1;
};
const with_loc_0 = (drec_1, expr_0) => {
return { ...expr_0,
loc: drec_1.loc
};
};
const get_js_0 = (id_2, ctx_2) => {
const val_4 = get_value_0(id_2, ctx_2);
/* istanbul ignore else */
if (null != val_4) {
/* istanbul ignore else */
if (val_4.ignore_refs === true) {
const result_10 = with_loc_0(id_2, val_4.js);
return result_10;
}
}
/* istanbul ignore else */
if (null != val_4) {
/* istanbul ignore else */
if (val_4.inline === true) {
const result_9 = with_loc_0(id_2, val_4.js);
return result_9;
}
}
/* istanbul ignore else */
if (null != val_4) {
/* istanbul ignore else */
if (val_4.inline === false) {
const result_8 = ident_0(id_2);
return result_8;
}
}
/* istanbul ignore else */
if (null != val_4) {
/* istanbul ignore else */
if (true === val_4.refs > 1) {
const result_7 = ident_0(id_2);
return result_7;
}
}
/* istanbul ignore else */
if (null != val_4) {
/* istanbul ignore else */
if (undefined !== val_4.js) {
const result_6 = with_loc_0(id_2, val_4.js);
return result_6;
}
}
const result_5 = ident_0(id_2);
return result_5;
};
const add_runtime_requirement_0 = (func_0, drec_2) => {
const key_21 = `runtime`;
const {
runtime: _key_21,
...ctx_3
} = drec_2;
return { ...ctx_3,
runtime: { ...drec_2.runtime,
[func_0]: true
}
};
};
const get_js_literal_0 = (id_3, ctx_4) => {
const drec_3 = get_value_0(id_3, ctx_4);
const flbk_0 = get_js_0(id_3, ctx_4);
const hdm_0 = drec_3.js;
return undefined === hdm_0 ? flbk_0 : hdm_0;
};
const add_0 = (name_0, transformer_0) => {
return drec_4 => {
const key_27 = `transformers`;
const {
transformers: _key_27,
...ctx_5
} = drec_4;
return {
transformers: { ...drec_4.transformers,
[name_0]: transformer_0
},
...ctx_5
};
};
};
const get_transformer_0 = (dlst_2, drec_6) => {
return drec_6.transformers[dlst_2[0].f];
};
exports.set_js = set_js_0;
exports.set_js2 = set_js2_0;
exports.with_loc = with_loc_0;
exports.get_js = get_js_0;
exports.add_runtime_requirement = add_runtime_requirement_0;
exports.get_js_literal = get_js_literal_0;
exports.add = add_0;
exports.get_transformer = get_transformer_0;