Ejemplo n.º 1
0
        public bool InvokeMemberWithBooleanReturn(string name)
        {
            var member = GetMember(name);

            if (member != null)
            {
                var ctx = member.context.rawValue;
                if (ctx != IntPtr.Zero)
                {
                    member.Push(ctx);
                    this.Push(ctx);
                    var ret = DuktapeDLL.duk_pcall_method(ctx, 0);
                    if (ret != DuktapeDLL.DUK_EXEC_SUCCESS)
                    {
                        DuktapeAux.PrintError(ctx, -1);
                        DuktapeDLL.duk_pop(ctx);
                        throw new Exception("InvokeMemberWithBooleanReturn failed");
                    }

                    var o = DuktapeDLL.duk_get_boolean_default(ctx, -1, false);
                    DuktapeDLL.duk_pop(ctx);
                    return(o);
                }
            }

            return(false);
        }