The source code

    /**
     * @ignore
     * multi-touch base
     * @author yiminghe@gmail.com
     */
    KISSY.add('event/dom/touch/multi-touch', function (S, DOM) {

        function MultiTouch() {
        }

        MultiTouch.prototype = {

            requiredTouchCount: 2,

            onTouchStart: function (e) {
                var self = this,
                    requiredTouchesCount = self.requiredTouchCount,
                    touches = e.touches,
                    touchesCount = touches.length;

                if (touchesCount === requiredTouchesCount) {
                    self.start();
                }
                else if (touchesCount > requiredTouchesCount) {
                    self.end(e);
                }
            },

            onTouchEnd: function (e) {
                this.end(e);
            },

            start: function () {
                var self = this;
                if (!self.isTracking) {
                    self.isTracking = true;
                    self.isStarted = false;
                }
            },

            fireEnd: S.noop,

            getCommonTarget: function (e) {
                var touches = e.touches,
                    t1 = touches[0].target,
                    t2 = touches[1].target;
                if (t1 == t2) {
                    return t1;
                }
                if (DOM.contains(t1, t2)) {
                    return t1;
                }

                while (1) {
                    if (DOM.contains(t2, t1)) {
                        return t2;
                    }
                    t2 = t2.parentNode;
                }
                S.error('getCommonTarget error!');
                return undefined;
            },

            end: function (e) {
                var self = this;
                if (self.isTracking) {
                    self.isTracking = false;

                    if (self.isStarted) {
                        self.isStarted = false;

                        self.fireEnd(e);
                    }
                }
            }
        };

        return MultiTouch;

    }, {
        requires: ['dom']
    });