Block
  FunctionDeclaration
    Identifier : foo
    FunctionConstructor
      Identifier : foo
      FormalParam
        Identifier : a
      FormalParam
        Identifier : b
      Block ; synthetic=true
        ExpressionStmt ; synthetic=true
          SpecialOperation : FUNCTION_CALL ; synthetic=true
            Reference ; synthetic=true
              Identifier : plugin_require___
            SimpleOperation : STRICTLY_NOT_EQUAL ; synthetic=true
              Reference ; synthetic=true
                Identifier : this
              Reference ; synthetic=true
                Identifier : window
        Conditional
          ControlOperation : LOGICAL_AND
            SimpleOperation : GREATER_THAN
              Reference
                Identifier : a
              IntegerLiteral : 0
            SimpleOperation : GREATER_THAN
              Reference
                Identifier : b
              IntegerLiteral : 0
          Block
            ReturnStmt
              SpecialOperation : FUNCTION_CALL
                SpecialOperation : MEMBER_ACCESS ; synthetic=true
                  Reference
                    Identifier : foo
                  Reference ; synthetic=true
                    Identifier : call
                Reference ; synthetic=true
                  Identifier : this
                Reference
                  Identifier : b
                SimpleOperation : SUBTRACTION
                  Reference
                    Identifier : a
                  IntegerLiteral : 1
        TryStmt
          Block
            ExpressionStmt
              SpecialOperation : FUNCTION_CALL
                SpecialOperation : MEMBER_ACCESS ; synthetic=true
                  Reference
                    Identifier : bar
                  Reference ; synthetic=true
                    Identifier : call
                Reference ; synthetic=true
                  Identifier : this
          CatchStmt
            Declaration ; synthetic=true
              Identifier : safe_ex___
            Block
              Declaration ; synthetic=true
                Identifier : e
                SimpleOperation : ADDITION ; synthetic=true
                  StringLiteral : '' ; synthetic=true
                  Reference ; synthetic=true
                    Identifier : safe_ex___
              ExpressionStmt
                SpecialOperation : FUNCTION_CALL
                  SpecialOperation : MEMBER_ACCESS ; synthetic=true
                    Reference
                      Identifier : alert
                    Reference ; synthetic=true
                      Identifier : call
                  Reference ; synthetic=true
                    Identifier : this
                  Reference
                    Identifier : e
  Declaration
    Identifier : a
    SpecialOperation : FUNCTION_CALL ; synthetic=true
      Reference ; synthetic=true
        Identifier : plugin_get___
      Reference
        Identifier : bar
      Reference
        Identifier : baz
  ExpressionStmt
    SpecialOperation : FUNCTION_CALL
      SpecialOperation : MEMBER_ACCESS ; synthetic=true
        Reference
          Identifier : eval
        Reference ; synthetic=true
          Identifier : call
      Reference ; synthetic=true
        Identifier : this
      StringLiteral : 'badness()'
