コード例 #1
0
        public static int Array_Create(IntPtr ctx)
        {
            Type type;
            int  size;

            if (duk_get_type(ctx, 0, out type))
            {
                if (type != null)
                {
                    if (DuktapeDLL.duk_is_number(ctx, 1) && duk_get_primitive(ctx, 1, out size))
                    {
                        var o = Array.CreateInstance(type, size);
                        duk_push_classvalue(ctx, o);
                        return(1);
                    }
                    else
                    {
                        return(DuktapeDLL.duk_generic_error(ctx, "invalid size"));
                    }
                }
                else
                {
                    return(DuktapeDLL.duk_generic_error(ctx, "invalid type"));
                }
            }
            return(DuktapeDLL.duk_generic_error(ctx, "invalid args"));
        }
コード例 #2
0
        public static int SetTimeout(IntPtr ctx)
        {
            DuktapeFunction fn;
            var             idx = _GetTimerFunction(ctx, out fn);

            if (idx < 0)
            {
                var id = DuktapeRunner.SetTimeout(fn, DuktapeDLL.duk_get_int(ctx, 1));
                DuktapeDLL.duk_push_uint(ctx, id);
                return(1);
            }
            return(DuktapeDLL.duk_generic_error(ctx, "invalid arg " + idx));
        }
コード例 #3
0
 public static int duk_assert(IntPtr ctx)
 {
     if (!DuktapeDLL.duk_get_boolean(ctx, 0))
     {
         var msg = string.Empty;
         if (DuktapeDLL.duk_get_top(ctx) > 1)
         {
             msg = duk_print_string(ctx, 1, false);
         }
         return(DuktapeDLL.duk_generic_error(ctx, "assertion failed: " + msg));
     }
     return(0);
 }
コード例 #4
0
 protected static int object_private_ctor(IntPtr ctx)
 {
     return(DuktapeDLL.duk_generic_error(ctx, "cant call constructor on this type"));
 }