visitMember method

  1. @override
Eval visitMember(
  1. MemberExpression expr,
  2. CallVisitorContext context
)
override

Implementation

@override
Eval visitMember(MemberExpression expr, CallVisitorContext context) {
  var receiver = expr.object.accept(this, context);
  var type = expr.object.getType<ObjectType>();

  var property =  expr.property.name;
  var descriptor = type.typeDescriptor.getProperty<AbstractPropertyDescriptor>(property);

  return descriptor.isField() ?
    EvalMember(receiver: receiver, field: descriptor as FieldDescriptor) :
    EvalMethod(receiver: receiver, method: descriptor as MethodDescriptor);
}