# File lib/puppet/parser/ast/ifstatement.rb, line 18
18:     def evaluate(scope)
19:       level = scope.ephemeral_level
20:       value = @test.safeevaluate(scope)
21: 
22:       # let's emulate a new scope for each branches
23:       begin
24:         if Puppet::Parser::Scope.true?(value)
25:           return @statements.safeevaluate(scope)
26:         else
27:           return defined?(@else) ? @else.safeevaluate(scope) : nil
28:         end
29:       ensure
30:         scope.unset_ephemeral_var(level)
31:       end
32:     end