示例#1
0
        public void JsEnvCreateFailedException()
        {
            var loader = new TxtLoader();

            loader.AddMockFileContent("puerts/polyfill.mjs", @" throw new Error('expected exception') ");
            JsEnv env        = null;
            var   oldEnvList = JsEnv.jsEnvs;

            JsEnv.jsEnvs = new System.Collections.Generic.List <JsEnv>();
            try
            {
                env = new JsEnv(loader);
            }
            catch (Exception ex)
            {
                Assert.True(ex.Message.Contains("expected exception"));
                Assert.True(env == null);
                Assert.True(JsEnv.jsEnvs.Count == 1);
                Assert.True(JsEnv.jsEnvs[0] == null);
                JsEnv.jsEnvs = oldEnvList;
                return;
            }

            JsEnv.jsEnvs = oldEnvList;
            Assert.True(false);
        }
示例#2
0
        public void ESModuleEvaluateError()
        {
            var loader = new TxtLoader();

            loader.AddMockFileContent("whatever.mjs", @"var obj = {}; obj.func();");
            var jsEnv = new JsEnv(loader);

            Assert.Catch(() =>
            {
                jsEnv.ExecuteModule("whatever.mjs");
            });
            jsEnv.Dispose();
        }
示例#3
0
        public void ESModuleCompileError()
        {
            var loader = new TxtLoader();

            loader.AddMockFileContent("whatever.mjs", @"export delete;");
            var jsEnv = new JsEnv(loader);

            Assert.Catch(() =>
            {
                jsEnv.ExecuteModule("whatever.mjs");
            });
            jsEnv.Dispose();
        }
示例#4
0
        public void ESModuleImportCSharp()
        {
            var loader = new TxtLoader();

            loader.AddMockFileContent("whatever.mjs", @"
                import csharp from 'csharp';
                const func = function() { return csharp.System.String.Join(' ', 'hello', 'world') }
                export { func };
            ");
            var           jsEnv = new JsEnv(loader);
            Func <string> func  = jsEnv.ExecuteModule <Func <string> >("whatever.mjs", "func");

            Assert.True(func() == "hello world");

            jsEnv.Dispose();
        }
示例#5
0
        public void ESModuleImportCSharpNamespace()
        {
            var loader = new TxtLoader();

            loader.AddMockFileContent("whatever.mjs", @"
                import csharp from 'csharp';
                const func = function() { return csharp.System.String.Join(' ', 'hello', 'world') }
                export { func };
            ");
            var jsEnv = new JsEnv(loader);
            var ns    = jsEnv.ExecuteModule <JSObject>("whatever.mjs");

            Assert.True(ns != null);
            Assert.True(ns.GetType() == typeof(JSObject));

            jsEnv.Dispose();
        }
示例#6
0
        public void ESModuleImportCSharp()
        {
            var loader = new TxtLoader();

            loader.AddMockFileContent("whatever.mjs", @"import csharp from 'csharp'; csharp.System.Console.WriteLine('ESModuleImportCSharp')");
            var jsEnv = new JsEnv(loader);

            try
            {
                jsEnv.ExecuteModule("whatever.mjs");
            }
            catch (Exception e)
            {
                Assert.True(false);
            }
            jsEnv.Dispose();
        }