public static Value SendSuperMessage(Class super, string messageName, Arguments arguments) { var reference = State.GetInvokeable(Object.InvokeableName(super.Name, true, messageName)); RejectNull(reference, LOCATION, $"reference for super.{Unmangle(messageName)} couldn't be found"); using (var popper = new RegionPopper(new Region(), "super")) { if (super.SuperName.IsNotEmpty()) { var newSuper = Regions[super.SuperName]; popper.Push(); Regions.SetParameter("super", newSuper); } else { popper.Push(); Regions.SetParameter("super", ""); } var value = reference.Invoke(arguments); return(value); } }
public ObjectRegion(Object obj, Hash <string, IInvokable> invariants) { this.obj = obj; this.invariants = invariants; }
public ObjectRegion(Object obj) { this.obj = obj; invariants = new Hash <string, IInvokable>(); }
public Contract(Object obj, string name, Bits32 <ContractType> types) : this(obj, name) { this.types = types; }
public Contract(Object obj, string name) { this.obj = obj; this.name = name; types = ContractType.None; }