The source code

    /**
     * @ignore
     * base event object for custom and dom event.
     * @author yiminghe@gmail.com
     */
    KISSY.add('event/base/object', function (S) {

        var FALSE_FN = function () {
            return false;
        }, TRUE_FN = function () {
            return true;
        };

        /**
         * @class KISSY.Event.Object
         * @private
         * KISSY 's base event object for custom and dom event.
         */
        function EventObject() {
            this.timeStamp = S.now();
            /**
             * current event type
             * @property type
             * @type {String}
             */
        }

        EventObject.prototype = {
            constructor: EventObject,
            /**
             * Flag for preventDefault that is modified during fire event. if it is true, the default behavior for this event will be executed.
             * @method
             */
            isDefaultPrevented: FALSE_FN,
            /**
             * Flag for stopPropagation that is modified during fire event. true means to stop propagation to bubble targets.
             * @method
             */
            isPropagationStopped: FALSE_FN,
            /**
             * Flag for stopImmediatePropagation that is modified during fire event. true means to stop propagation to bubble targets and other listener.
             * @method
             */
            isImmediatePropagationStopped: FALSE_FN,

            /**
             * Prevents the event's default behavior
             */
            preventDefault: function () {
                this.isDefaultPrevented = TRUE_FN;
            },

            /**
             * Stops the propagation to the next bubble target
             */
            stopPropagation: function () {
                this.isPropagationStopped = TRUE_FN;
            },

            /**
             * Stops the propagation to the next bubble target and
             * prevents any additional listeners from being executed
             * on the current target.
             */
            stopImmediatePropagation: function () {
                var self = this;
                self.isImmediatePropagationStopped = TRUE_FN;
                // fixed 1.2
                // call stopPropagation implicitly
                self.stopPropagation();
            },

            /**
             * Stops the event propagation and prevents the default
             * event behavior.
             * @param  {Boolean} [immediate] if true additional listeners on the current target will not be executed
             */
            halt: function (immediate) {
                var self = this;
                if (immediate) {
                    self.stopImmediatePropagation();
                } else {
                    self.stopPropagation();
                }
                self.preventDefault();
            }
        };

        return EventObject;

    });