readField method

Object? readField(
  1. Object key
)

If this lua object is a table, then reads _fields by key and returns the value. Otherwise null is returned.

Implementation

Object? readField(Object key) {
  uses++;
  final k = _keyFrom(key);
  _onRead?.call(k);

  if (skipSemanitcs) return LuaObjectNoSemantics(k.toString());

  if (isRef) {
    return deref().readField(k);
  } else if (isTable) {
    return switch (_fields?[k]) {
      final LuaObject obj => obj.deref(),
      null => null,
    };
  } else {
    // Not allowed except on tables.
    return null;
  }
}