Fixed referencing variable.description in a calculation

Whether the description's inline calculations are calculated or not is 
not defined.
This commit is contained in:
Stefan Zermatten
2021-12-08 09:23:29 +02:00
parent e34f29f952
commit 6e22e4286f
2 changed files with 12 additions and 2 deletions

View File

@@ -26,6 +26,10 @@ function discoverInlineCalculationFields(prop, schemas){
unset(prop, calcKey);
return;
}
// Set the value to the uncomputed string for use in calculations
inlineCalcObj.value = string;
// Has the text, if it matches the existing hash, stop
const inlineCalcHash = cyrb53(inlineCalcObj.text);
if (inlineCalcHash === inlineCalcObj.hash){
@@ -33,10 +37,9 @@ function discoverInlineCalculationFields(prop, schemas){
}
inlineCalcObj.hash = inlineCalcHash;
inlineCalcObj.inlineCalculations = [];
// Set the value to the uncomputed string for use in calculations
// It will be re set including the embedded calculation at the end of
// the computation
inlineCalcObj.value = string;
let matches = string.matchAll(INLINE_CALCULATION_REGEX);
for (let match of matches){
let calculation = match[1];

View File

@@ -16,6 +16,12 @@ const accessor = {
value = value[name];
});
let valueType = typeof value;
// If the accessor returns an objet, get the object's value instead
while (valueType === 'object'){
value = value.value;
valueType = typeof value;
}
// Return a parse node based on the type returned
if (valueType === 'string' || valueType === 'number' || valueType === 'boolean'){
return {
result: constant.create({
@@ -34,6 +40,7 @@ const accessor = {
};
} else {
context.error(`${node.name} returned an unexpected type`);
context.error(JSON.stringify(value, null, 2));
return {
result: accessor.create({
name: node.name,