getValueFromNode method

dynamic getValueFromNode(
  1. Node node
)

Implementation

dynamic getValueFromNode(Node node) {
  dynamic value = node.visitBy(this);
  if (value is List) {
    List<dynamic> arr = [];
    value.forEach((element) {
      if (element is Node) {
        arr.add(getValueFromNode(element));
      } else {
        arr.add(element);
      }
    });
    //we must not assign the array to a new array as it will be disconnected from the original.
    //Take the nested array case when you are changing value within the nested array.
    //see 2darrayissue in unit tests
    //value = arr;
    for (int i = 0; i < value.length; i++) {
      value[i] = arr[i];
    }
  } else if (value is Name) {
    value = getValue(value);
  } else if (node is ThisExpression) {
    value = getValueFromString(value);
  }
  return value;
}