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()))); }
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())); }
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()); }