Esempio n. 1
0
        /// <summary>
        /// external invokation
        /// </summary>
        public dynamic Invoke(Reflection.Object obj, dynamic[] arg)
        {
            // make reference copy from previous scope
            var lcp = body.loc;

            body.loc    = new dynamic[body.lcsize];
            body.loc[0] = obj; // this

            // load parameters
            for (int i = 0; i < arg?.Length; i++)
            {
                body.loc[i + 1] = arg[i];
            }

            var ret = body.Exec();

            body.loc = lcp;

            return(ret);
        }
Esempio n. 2
0
        public override dynamic Callvirt(Reflection.Object obj, Exp[] arg)
        {
            // make reference copy from previous scope
            var lcp = body.loc;

            body.loc    = new dynamic[body.lcsize];
            body.loc[0] = obj; // this

            // load parameters
            for (int i = 0; i < arg.Length; i++)
            {
                body.loc[i + 1] = arg[i].Eval();
            }

            var ret = body.Exec();

            body.loc = lcp;

            return(ret);
        }
Esempio n. 3
0
 public override void SetValue(Reflection.Object obj, dynamic value)
 {
     obj.loc[lcid] = value;
 }
Esempio n. 4
0
 public override dynamic GetValue(Reflection.Object obj)
 {
     return(obj.loc[lcid]);
 }
Esempio n. 5
0
 public override void SetValue(Reflection.Object obj, dynamic value)
 {
     SetMethod.Invoke(obj, new[] { value });
 }
Esempio n. 6
0
 public override dynamic GetValue(Reflection.Object obj)
 {
     return(GetMethod.Invoke(obj, null));
 }
Esempio n. 7
0
 public virtual dynamic Callvirt(Reflection.Object obj, Exp[] arg)
 {
     throw new Exception("Non-overridden member access");
 }
Esempio n. 8
0
 public virtual void SetValue(Reflection.Object obj, dynamic value)
 {
     throw new Exception("Non-overridden member access");
 }