         notString = "elements must be MIME type strings"
         assert _.all(produces, _.isString), notString
         @$produces = (@$produces or []).concat produces
-        @emit "produces", @$produces, arguments
+        @emit.call @, "produces", @$produces, arguments
 
     # Either get or set the consumes information of the method that
     # is being described by this document. If you do no supply any

        return @$synopsis if arguments.length is 0
        noSynopsis = "The synopsis is not a string"
        assert _.isString(synopsis), noSynopsis
        @emit "synopsis", arguments...
        @$synopsis = synopsis.toString()

    # Either get or set the argument information of the method that
    # is being described by this document. If you do no supply any

        assert _.isString(description), noDescription
        assert _.isString(identify), noIdentify
        assert _.isString(typeable), noTypeable
        @emit.call this, "argument", arguments...
        return (@$argument ?= []).push
            description: description
            identify: identify
            typeable: typeable
