Beispiel #1
0
            public override Value Next()
            {
                if (current.SendToSelf("cmp", stop).Int <= 0)
                {
                    var deferred = current;
                    current = (Object)current.SendToSelf("succ");
                    return(deferred);
                }

                return(NilValue);
            }
Beispiel #2
0
        public void Require(Arguments arguments)
        {
            if (!types[ContractType.Require])
            {
                return;
            }

            var messageName = Runtime.FunctionPrefix("require", name);

            if (!obj.RespondsTo(messageName))
            {
                return;
            }

            var result = obj.SendToSelf(messageName, arguments);

            Runtime.Assert(result.IsTrue, LOCATION, "Requirement for {0} failed", name);
        }
Beispiel #3
0
 public override void Reset() => obj.SendToSelf("reset");
Beispiel #4
0
 static bool compare(Object left, Object right) => left.SendToSelf("cmp", right, () => - 1) == 0;
Beispiel #5
0
 static Object next(Object current) => current.SendToSelf("succ").RequiredCast <Object>(() => "succ message didn't return an object");