protected ElaFunction CloneFast(ElaFunction newInstance) { var pars = new ElaValue[Parameters.Length]; if (AppliedParameters > 0) //This is faster than Array.Copy { for (var i = 0; i < AppliedParameters; i++) { pars[i] = Parameters[i]; } } newInstance.Parameters = pars; newInstance.AppliedParameters = AppliedParameters; newInstance.Handle = Handle; newInstance.ModuleHandle = ModuleHandle; newInstance.vm = vm; newInstance.Captures = Captures; newInstance._flip = _flip; return(newInstance); }
internal ElaFunction CloneFull() { var pars = new ElaValue[Parameters.Length]; if (AppliedParameters > 0) //This is faster than Array.Copy { for (var i = 0; i < AppliedParameters; i++) { pars[i] = Parameters[i]; } } var ret = new ElaFunction(pars); ret.AppliedParameters = AppliedParameters; ret.Handle = Handle; ret.ModuleHandle = ModuleHandle; ret.vm = vm; ret.Captures = Captures; ret._flip = _flip; return(ret); }
internal ElaLazy(ElaFunction function) : base(ElaTypeCode.Lazy) { Function = function; _value = default(ElaValue); }
internal void AddFunction(int typeId, ElaFunction fun) { funs.Remove(typeId); funs.Add(typeId, fun); }