 		p._state = state
 		p._value = value
 
+		if state == $rejected and
+		p[$prePromise] and p[$prePromise]._state == $resolved
+			scheduleUnhandledRejection p
+
 		i = 0
 		len = p._pCount
-
-		if state == $rejected and not len
-			if isLongStackTrace
-				p[$settlerStack] = genTraceInfo()
-
-			scheduleUnhandledRejection p
 
 		# 2.2.2
 		# 2.2.3

				str

		stack = if reason
			format(reason.stack) or reason
		else
			reason


		return

	scheduleUnhandledRejection = genScheduler 100, (p) ->
		Yaku.onUnhandledRejection p._value, p
		return

	callHanler = (handler, value) ->
