 		if not isLongStackTrace
 			p._pre = $nil
 
-		i = 0
-		len = p._pCount
-
-		# 2.2.2
-		# 2.2.3
-		while i < len
-			# 2.2.4
-			scheduleHandler p, p[i++]
+		# 2.2.4
+		scheduleHandler p if p._pCount > 0
 
 		p
 

		flush = ->
			i = 0
			while i < fnQueueLen
				pIndex = i++
				vIndex = i++

				p = fnQueue[pIndex]
				v = fnQueue[vIndex]

				release fnQueue, pIndex
				release fnQueue, vIndex

				fn p, v

			fnQueueLen = 0
			fnQueue.length = initQueueSize

		p1[p1._pCount++] = p2

		# 2.2.6
		if p1._state != $pending and p1._pCount > 0
			scheduleHandler p1

		# 2.2.7
		p2
