Exemple #1
0
        public static TsObject Try(ITsInstance target, TsObject[] args)
        {
            var del = (TsDelegate)args[0];

            TsObject[] delArgs = null;
            if (args.Length > 1)
            {
                delArgs = new TsObject[args.Length - 1];
                Array.Copy(args, 1, delArgs, 0, delArgs.Length);
            }

            var result = new DynamicInstance("obj_exception");

            try
            {
                del.Invoke(delArgs);
                result["has_error"]  = false;
                result["error_type"] = "";
                result["error_msg"]  = "";
            }
            catch (Exception e)
            {
                result["has_error"]  = true;
                result["error_type"] = e.GetType().Name;
                result["error_msg"]  = e.Message;
            }

            return(result);
        }
Exemple #2
0
        public static TsObject CreateTaskResult(TsObject result, string exception)
        {
            var inst = new DynamicInstance("TaffyScript.Threading.TaskResult");

            inst["value"]     = result;
            inst["exception"] = exception;
            return(inst);
        }
        public static TsObject speech_get_installed_recognizers(TsObject[] args)
        {
            var infos  = SpeechRecognitionEngine.InstalledRecognizers();
            var result = new TsObject[infos.Count];

            for (var i = 0; i < result.Length; i++)
            {
                result[i] = SpeechRecognizer.CreateRecognizerInfo(infos[i]);
            }
            return(result);
        }
Exemple #4
0
        public static TsObject TimeInvoke(ITsInstance target, TsObject[] args)
        {
            var del = (TsDelegate)args[0];

            TsObject[] delArgs = null;
            if (args.Length > 1)
            {
                delArgs = new TsObject[args.Length - 1];
                Array.Copy(args, 1, delArgs, 0, delArgs.Length);
            }

            var timer = new Stopwatch();

            timer.Start();
            del.Invoke(delArgs);
            timer.Stop();
            var result = new DynamicInstance("obj_timer_result");

            result["ms"]    = timer.ElapsedMilliseconds;
            result["ticks"] = timer.ElapsedTicks;
            return(result);
        }
Exemple #5
0
        public static TsObject TryExpect(ITsInstance target, TsObject[] args)
        {
            var del = (TsDelegate)args[0];

            TsObject[] delArgs = null;
            if (args.Length > 2)
            {
                delArgs = new TsObject[args.Length - 2];
                Array.Copy(args, 2, delArgs, 0, delArgs.Length);
            }

            try
            {
                del.Invoke(delArgs);
            }
            catch (Exception e)
            {
                return(e.GetType().Name == (string)args[1]);
            }

            return(false);
        }
Exemple #6
0
 public static TsObject moniter_exit(ITsInstance inst, TsObject[] args)
 {
     Monitor.Exit(args[0].GetValue());
     return(TsObject.Empty());
 }
Exemple #7
0
 public static TsObject thread_sleep(ITsInstance inst, TsObject[] args)
 {
     Thread.Sleep((int)args[0]);
     return(TsObject.Empty());
 }