public void ExpressionStatementIsParenthesizedWhenItStartsWithAnObjectLiteral()
 {
     AssertCorrect((JsStatement)JsExpression.ObjectLiteral(new JsObjectLiteralProperty("a", JsExpression.Number(0))), "({ a: 0 });\n");
     AssertCorrect((JsStatement)JsExpression.Invocation(JsExpression.ObjectLiteral(new JsObjectLiteralProperty("a", JsExpression.Number(0)))), "({ a: 0 }());\n");
     AssertCorrect((JsStatement)JsExpression.Member(JsExpression.ObjectLiteral(new JsObjectLiteralProperty("a", JsExpression.Number(0))), "a"), "({ a: 0 }.a);\n");
     AssertCorrect((JsStatement)JsExpression.Comma(JsExpression.ObjectLiteral(new JsObjectLiteralProperty("a", JsExpression.Number(0))), JsExpression.Null), "({ a: 0 }, null);\n");
     AssertCorrect((JsStatement)JsExpression.Conditional(JsExpression.ObjectLiteral(new JsObjectLiteralProperty("a", JsExpression.Number(0))), JsExpression.Number(0), JsExpression.Number(1)), "({ a: 0 } ? 0 : 1);\n");
     AssertCorrect((JsStatement)JsExpression.PrefixPlusPlus(JsExpression.ObjectLiteral(new JsObjectLiteralProperty("a", JsExpression.Number(0)))), "++{ a: 0 };\n");
     AssertCorrect((JsStatement)JsExpression.PostfixPlusPlus(JsExpression.ObjectLiteral(new JsObjectLiteralProperty("a", JsExpression.Number(0)))), "({ a: 0 }++);\n");
     AssertCorrect((JsStatement)JsExpression.PostfixMinusMinus(JsExpression.ObjectLiteral(new JsObjectLiteralProperty("a", JsExpression.Number(0)))), "({ a: 0 }--);\n");
     AssertCorrect((JsStatement)JsExpression.Index(JsExpression.ObjectLiteral(new JsObjectLiteralProperty("a", JsExpression.Number(0))), JsExpression.Number(0)), "({ a: 0 }[0]);\n");
     AssertCorrect((JsStatement)JsExpression.Member(JsExpression.Invocation(JsExpression.Member(JsExpression.ObjectLiteral(new JsObjectLiteralProperty("a", JsExpression.Number(0))), "a")), "b"), "({ a: 0 }.a().b);\n");
 }
Пример #2
0
        public void ForStatementsAreCorrectlyOutput()
        {
            AssertCorrect(new JsForStatement(new JsVariableDeclarationStatement(new JsVariableDeclaration("i", JsExpression.Number(0))),
                                             JsExpression.Lesser(JsExpression.Identifier("i"), JsExpression.Number(10)),
                                             JsExpression.PostfixPlusPlus(JsExpression.Identifier("i")),
                                             JsBlockStatement.EmptyStatement),
                          "for(var i=0;i<10;i++){}");

            AssertCorrect(new JsForStatement(new JsExpressionStatement(JsExpression.Assign(JsExpression.Identifier("i"), JsExpression.Number(0))),
                                             JsExpression.Lesser(JsExpression.Identifier("i"), JsExpression.Number(10)),
                                             JsExpression.PostfixPlusPlus(JsExpression.Identifier("i")),
                                             JsBlockStatement.EmptyStatement),
                          "for(i=0;i<10;i++){}");

            AssertCorrect(new JsForStatement(new JsVariableDeclarationStatement(new JsVariableDeclaration("i", JsExpression.Number(0)), new JsVariableDeclaration("j", JsExpression.Number(1))),
                                             JsExpression.Lesser(JsExpression.Identifier("i"), JsExpression.Number(10)),
                                             JsExpression.Comma(JsExpression.PostfixPlusPlus(JsExpression.Identifier("i")), JsExpression.PostfixPlusPlus(JsExpression.Identifier("j"))),
                                             JsBlockStatement.EmptyStatement),
                          "for(var i=0,j=1;i<10;i++,j++){}");

            AssertCorrect(new JsForStatement(new JsEmptyStatement(), null, null, JsBlockStatement.EmptyStatement), "for(;;){}");
        }
Пример #3
0
        public void ForStatementsAreCorrectlyOutput()
        {
            AssertCorrect(JsStatement.For(JsStatement.Var(JsStatement.Declaration("i", JsExpression.Number(0))),
                                          JsExpression.Lesser(JsExpression.Identifier("i"), JsExpression.Number(10)),
                                          JsExpression.PostfixPlusPlus(JsExpression.Identifier("i")),
                                          JsStatement.EmptyBlock),
                          "for (var i = 0; i < 10; i++) {\n}\n");

            AssertCorrect(JsStatement.For(JsExpression.Assign(JsExpression.Identifier("i"), JsExpression.Number(0)),
                                          JsExpression.Lesser(JsExpression.Identifier("i"), JsExpression.Number(10)),
                                          JsExpression.PostfixPlusPlus(JsExpression.Identifier("i")),
                                          JsStatement.EmptyBlock),
                          "for (i = 0; i < 10; i++) {\n}\n");

            AssertCorrect(JsStatement.For(JsStatement.Var(JsStatement.Declaration("i", JsExpression.Number(0)), JsStatement.Declaration("j", JsExpression.Number(1))),
                                          JsExpression.Lesser(JsExpression.Identifier("i"), JsExpression.Number(10)),
                                          JsExpression.Comma(JsExpression.PostfixPlusPlus(JsExpression.Identifier("i")), JsExpression.PostfixPlusPlus(JsExpression.Identifier("j"))),
                                          JsStatement.EmptyBlock),
                          "for (var i = 0, j = 1; i < 10; i++, j++) {\n}\n");

            AssertCorrect(JsStatement.For(JsStatement.Empty, null, null, JsStatement.EmptyBlock),
                          "for (;;) {\n}\n");
        }