@abaplint/runtime
Version:
Transpiler - Runtime
35 lines • 964 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.concat = concat;
const types_1 = require("../types");
function concat(left, right) {
if (Array.isArray(left)) {
// used in ampersand concatenation
let res = concat(left[0], left[1]);
for (let i = 2; i < left.length; i++) {
res = concat(res, left[i]);
}
return res;
}
let val = "";
if (typeof left === "string" || typeof left === "number") {
val += left;
}
else if (left instanceof types_1.Character) {
val += left.getTrimEnd();
}
else {
val += left.get();
}
if (typeof right === "string" || typeof right === "number") {
val += right;
}
else if (right instanceof types_1.Character) {
val += right.getTrimEnd();
}
else {
val += right.get();
}
return new types_1.String().set(val);
}
//# sourceMappingURL=concat.js.map