private object Install(object target, ILookupHost host) { ILookupThunk t = ((IKeywordLookup)target).getLookupThunk(_k); if (t != null) { host.swapThunk(_n, t); return t.get(target); } host.swapThunk(_n, CreateThunk(target.GetType())); return ((ILookup)target).valAt(_k); }
public object fault(object target, ILookupHost host) { if (target is IKeywordLookup) return Install(target, host); else if (target is ILookup) { host.swapThunk(_n, CreateThunk(target.GetType())); return ((ILookup)target).valAt(_k); } host.swapThunk(_n, this); return RT.get(target, _k); }