public void BlockReturnsBlock1()
        {
            var a     = JS.Id("a");
            var b     = JS.Id("b");
            var c     = JS.Id("c");
            var block = JS.Block(a, b, c);

            Assert.AreEqual("{a;b;c;}", block.ToString());
        }
        public void BlockReturnsBlock2()
        {
            var a     = JS.Id("a");
            var b     = JS.Id("b");
            var c     = JS.Id("c");
            var block = JS.Block(new List <Statement> {
                a, b, c
            });

            Assert.AreEqual("{a;b;c;}", block.ToString());
        }
        public void WithStatementRequiresExpressionAndStatement()
        {
            var statement = new WithStatement();

            Expect.Throw <InvalidOperationException>(() => statement.ToString());

            statement.Expression = JS.Id("a");

            Expect.Throw <InvalidOperationException>(() => statement.ToString());

            statement.Statement = JS.Block();

            Assert.AreEqual("a;", statement.Expression.ToString());
            Assert.AreEqual("{}", statement.Statement.ToString());
            Assert.AreEqual("with(a){}", statement.ToString());
        }
        public void BlockReturnsEmptyBlock()
        {
            var block = JS.Block();

            Assert.AreEqual("{}", block.ToString());
        }