Sha256: 7b1a4837dae27f7413ae691ac7ecf3e2b8745997f3746026ed851377bb89054b

Contents?: true

Size: 1.64 KB

Versions: 17

Compression:

Stored size: 1.64 KB

Contents

require File.expand_path(File.join(File.dirname(__FILE__), "/../../helper"))

class ForTest < Johnson::NodeTestCase
  def test_empty_for
    assert_sexp([[:for, nil, nil, nil, [:var, [[:assign, [:name, "x"], [:lit, 10]]]]]],
                @parser.parse('for( ; ; ) var x = 10;'))
    assert_ecma('for( ; ; ) var x = 10;',
                @parser.parse('for( ; ; ) var x = 10;'))
  end

  def test_in_no_bf
    assert_sexp([[:in, [:lit, 0], [:name, "foo"]]],
      @parser.parse('0 in foo')
               )
    assert_ecma('0 in foo;', @parser.parse('0 in foo'))
  end

  def test_for_in_loop
    assert_sexp(
      [
        [:for_in,
          [:in, [:var, [[:name, "foo"]]], [:name, "bar"]],
          [
            [:var, [[:assign, [:name, "x"], [:lit, 10]]]]
          ]
      ]],
      @parser.parse('for(var foo in bar) { var x = 10; }')
               )
    assert_ecma("for(var foo in bar) {\n  var x = 10;\n}",
      @parser.parse('for(var foo in bar) { var x = 10; }'))
  end

  def test_for_loop
    assert_sexp([
      [:for,
        [:op_equal, [:name, "foo"], [:lit, 10]],
        [:lt, [:name, "foo"], [:lit, 10]],
        [:postfix_inc, [:name, "foo"]],
        [
          [:var, [[:assign, [:name, "x"], [:lit, 10]]]],
          [:var, [[:assign, [:name, "y"], [:lit, 11]]]]
        ]
      ]],
      @parser.parse('for(foo = 10; foo < 10; foo++) { 
                    var x = 10;
                    var y = 11; }')
               )
    assert_ecma("for(foo = 10; foo < 10; foo++) {\n  var x = 10;\n  var y = 11;\n}",
      @parser.parse('for(foo = 10; foo < 10; foo++) { 
                    var x = 10;
                    var y = 11; }')
    )
  end
end

Version data entries

17 entries across 17 versions & 2 rubygems

Version Path
jbarnette-johnson-1.0.0.200806240111 test/johnson/nodes/for_test.rb
jbarnette-johnson-1.0.0.200807291507 test/johnson/nodes/for_test.rb
jbarnette-johnson-1.0.0.200808062051 test/johnson/nodes/for_test.rb
jbarnette-johnson-1.0.0.200808062111 test/johnson/nodes/for_test.rb
jbarnette-johnson-1.0.0.200811251942 test/johnson/nodes/for_test.rb
jbarnette-johnson-1.0.0.20081126120511 test/johnson/nodes/for_test.rb
jbarnette-johnson-1.0.0.20090127202936 test/johnson/nodes/for_test.rb
jbarnette-johnson-1.0.0.20090225110820 test/johnson/nodes/for_test.rb
jbarnette-johnson-1.0.0.20090326122910 test/johnson/nodes/for_test.rb
jbarnette-johnson-1.0.0.20090326154650 test/johnson/nodes/for_test.rb
jbarnette-johnson-1.0.0.20090326161333 test/johnson/nodes/for_test.rb
jbarnette-johnson-1.0.0.20090402144841 test/johnson/nodes/for_test.rb
jbarnette-johnson-1.0.0.20090402155420 test/johnson/nodes/for_test.rb
johnson-1.2.0 test/johnson/nodes/for_test.rb
johnson-1.1.1 test/johnson/nodes/for_test.rb
johnson-1.1.2 test/johnson/nodes/for_test.rb
johnson-1.1.0 test/johnson/nodes/for_test.rb