public override object Run()
        {
            var a = JS.Id("a");

            return(JS.For(null, a.IsGreaterThan(0), a.PostDecrement()).Do(
                       JS.Alert(a),
                       JS.If(a.IsEqualTo(5)).Then(
                           JS.Break())));
        }
Example #2
0
        public void SwitchStatementDefaultMustComeLast()
        {
            var statement = JS.Switch(JS.Id("a"))
                            .Default()
                            .Do(JS.Break())
                            .Case((IEnumerable <Expression>)null)
                            .Case(1)
                            .Do(JS.Break());

            Expect.Throw <InvalidOperationException>(() => statement.ToString());
        }
        public void SwitchReturnsSwitchWithCases()
        {
            var s = JS.Switch(JS.Id("a"))
                    .Case(1).Do(
                JS.Id("alert").Call("moo!"),
                JS.Break())
                    .Case(2, 3, 4).Do(
                JS.Id("alert").Call("cow!"),
                JS.Break());

            Assert.AreEqual("switch(a){case 1:alert(\"moo!\");break;case 2:case 3:case 4:alert(\"cow!\");break;}", s.ToString());
        }
 public override object Run()
 {
     return(JS.Switch(JS.Id("event"))
            .Case("click")
            .Case("contextmenu").Do(
                JS.Alert("clicked!"),
                JS.Break())
            .Case("enter").Do(
                JS.Alert("entered"),
                JS.Break())
            .Case("leave").Do(
                JS.Alert("leave"),
                JS.Break()));
 }
Example #5
0
        public void SwitchStatementProducesSwitch()
        {
            var statement1 = JS.Switch(JS.Id("a"))
                             .Case("a").Do(JS.Return("a"));

            Assert.AreEqual("switch(a){case \"a\":return \"a\";}", statement1.ToString());

            var statement2 = JS.Switch(JS.Id("b"))
                             .Case(1).Do(JS.Return(100))
                             .Case(2).Case(3).Do(JS.Return(200))
                             .Case(4, 5, 6).Do(new List <Statement>
            {
                JS.Alert("Not Done!"),
                JS.Break()
            })
                             .Case(Enumerable.Range(7, 4).Select(i => (Expression)JS.Number(i))).Do(
                JS.Alert(JS.Id("a")),
                JS.Break())
                             .Default().Do(JS.Break());

            statement2.Cases.Add(null);

            Assert.AreEqual(
                "switch(b){case 1:return 100;case 2:case 3:return 200;" +
                "case 4:case 5:case 6:alert(\"Not Done!\");break;" +
                "case 7:case 8:case 9:case 10:alert(a);break;default:break;}",
                statement2.ToString());

            CaseStatement test = new CaseStatement(3);

            test.Value = 4;
            test.Statements.Add(JS.Break());

            var cases = new List <CaseStatement>
            {
                new CaseStatement(1, JS.Break()),
                new CaseStatement(2, new List <Statement> {
                    JS.Break()
                }),
                test
            };

            var statement3 = new SwitchStatement(JS.Id("c"), cases);

            Assert.AreEqual("switch(c){case 1:break;case 2:break;case 4:break;}", statement3.ToString());
        }
        public void BreakReturnsBreakWithLabel()
        {
            var b = JS.Break("a");

            Assert.AreEqual("break a;", b.ToString());
        }
        public void BreakReturnsBreak()
        {
            var b = JS.Break();

            Assert.AreEqual("break;", b.ToString());
        }