예제 #1
0
        public static DynValue upvaluejoin(ScriptExecutionContext executionContext, CallbackArguments args)
        {
            DynValue f1 = args.AsType(0, "upvaluejoin", DataType.Function, false);
            DynValue f2 = args.AsType(2, "upvaluejoin", DataType.Function, false);
            int      n1 = args.AsInt(1, "upvaluejoin") - 1;
            int      n2 = args.AsInt(3, "upvaluejoin") - 1;

            Closure c1 = f1.Function;
            Closure c2 = f2.Function;

            if (n1 < 0 || n1 >= c1.ClosureContext.Count)
            {
                throw ScriptRuntimeException.BadArgument(1, "upvaluejoin", "invalid upvalue index");
            }

            if (n2 < 0 || n2 >= c2.ClosureContext.Count)
            {
                throw ScriptRuntimeException.BadArgument(3, "upvaluejoin", "invalid upvalue index");
            }

            var d = c1.ClosureContext[n1];

            c2.ClosureContext.ReplaceWith(n2, c1.ClosureContext[n1]);

            return(DynValue.Void);
        }
예제 #2
0
		private static int[] BuildArrayIndices(CallbackArguments args, int count)
		{
			int[] indices = new int[count];

			for (int i = 0; i < count; i++)
				indices[i] = args.AsInt(i, "userdata_array_indexer");

			return indices;
		}
        private static int[] BuildArrayIndices(CallbackArguments args, int count)
        {
            var indices = new int[count];

            for (int i = 0; i < count; i++)
            {
                indices[i] = args.AsInt(i, "userdata_array_indexer");
            }

            return(indices);
        }
예제 #4
0
        public static DynValue upvaluejoin(ScriptExecutionContext executionContext, CallbackArguments args)
        {
            var f1 = args.AsType(0, "upvaluejoin", DataType.Function);
            var f2 = args.AsType(2, "upvaluejoin", DataType.Function);
            int n1 = args.AsInt(1, "upvaluejoin") - 1;
            int n2 = args.AsInt(3, "upvaluejoin") - 1;

            var c1 = f1.Function;
            var c2 = f2.Function;

            if (n1 < 0 || n1 >= c1.ClosureContext.Count)
            {
                throw ScriptRuntimeException.BadArgument(1, "upvaluejoin", "invalid upvalue index");
            }

            if (n2 < 0 || n2 >= c2.ClosureContext.Count)
            {
                throw ScriptRuntimeException.BadArgument(3, "upvaluejoin", "invalid upvalue index");
            }

            c2.ClosureContext[n2] = c1.ClosureContext[n1];

            return(DynValue.Void);
        }
예제 #5
0
        public static DynValue upvaluejoin(ScriptExecutionContext executionContext, CallbackArguments args)
        {
            var f1 = args.AsType(0, "upvaluejoin", DataType.Function, false);
            var f2 = args.AsType(2, "upvaluejoin", DataType.Function, false);
            var n1 = args.AsInt(1, "upvaluejoin") - 1;
            var n2 = args.AsInt(3, "upvaluejoin") - 1;

            var c1 = f1.Function;
            var c2 = f2.Function;

            if (n1 < 0 || n1 >= c1.ClosureContext.Count)
                throw ScriptRuntimeException.BadArgument(1, "upvaluejoin", "invalid upvalue index");

            if (n2 < 0 || n2 >= c2.ClosureContext.Count)
                throw ScriptRuntimeException.BadArgument(3, "upvaluejoin", "invalid upvalue index");

            c2.ClosureContext[n2] = c1.ClosureContext[n1];

            return DynValue.Void;
        }