bs-platform
Version:
bucklescript compiler, ocaml standard libary by bucklescript and its required runtime support
77 lines (66 loc) • 1.68 kB
JavaScript
;
function __(tag, block) {
block.tag = tag;
return block;
}
function record(meta, xs) {
return Object.defineProperty(xs, Symbol.for("BsRecord"), {
value: meta
});
}
function variant(meta, tag, xs) {
xs.tag = tag;
return Object.defineProperty(xs, Symbol.for("BsVariant"), {
value: meta
});
}
function simpleVariant(meta, xs) {
return Object.defineProperty(xs, Symbol.for("BsVariant"), {
value: meta
});
}
function localModule(meta, xs) {
return Object.defineProperty(xs, Symbol.for("BsLocalModule"), {
value: meta
});
}
function polyVar(meta, xs) {
return Object.defineProperty(xs, Symbol.for("BsPolyVar"), {
value: meta
});
}
function spliceApply (fn,args){
var i, argLen;
argLen = args.length
var applied = []
for(i = 0; i < argLen - 1; ++i){
applied.push(args[i])
}
var lastOne = args[argLen - 1]
for(i = 0; i < lastOne.length; ++i ){
applied.push(lastOne[i])
}
return fn.apply(null,applied)
};
function spliceObjApply (obj,name,args){
var i, argLen;
argLen = args.length
var applied = []
for(i = 0; i < argLen - 1; ++i){
applied.push(args[i])
}
var lastOne = args[argLen - 1]
for(i = 0; i < lastOne.length; ++i ){
applied.push(lastOne[i])
}
return (obj[name]).apply(obj,applied)
};
exports.__ = __;
exports.record = record;
exports.variant = variant;
exports.simpleVariant = simpleVariant;
exports.localModule = localModule;
exports.polyVar = polyVar;
exports.spliceApply = spliceApply;
exports.spliceObjApply = spliceObjApply;
/* No side effect */