@abaplint/runtime
Version:
Transpiler - Runtime
35 lines • 941 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.strlen = strlen;
const integer_factory_1 = require("../integer_factory");
const types_1 = require("../types");
function strlen(input) {
let source;
if (input.val instanceof types_1.FieldSymbol) {
const pointer = input.val.getPointer();
if (pointer === undefined) {
throw new Error("GETWA_NOT_ASSIGNED");
}
source = pointer;
}
else {
source = input.val;
}
let str = "";
if (typeof source === "string") {
str = source;
}
else if (source instanceof types_1.Character) {
str = source.getTrimEnd();
}
else {
str = source.get();
}
if (str.length <= 200) {
return integer_factory_1.IntegerFactory.get(str.length);
}
else {
return new types_1.Integer().set(str.length);
}
}
//# sourceMappingURL=strlen.js.map