 		handler = self[offset + self._state]
 
 		if typeof handler == 'function'
-			try
-				x = handler self._value
-			catch e
-				self[offset + 3] e
-				return
+			x = getX self, offset, handler
+			return if x == $tryErr
 
 			# Prevent circular chain.
 			if x == self[offset + 4] and x

	$groupNum = 5

	$circularErrorInfo = 'circular promise resolution chain'

	# ************************* Private Constant End **************************


	resolveValue = (x, resolve, reject) ->
		type = typeof x
		if x != null and (type == 'function' or type == 'object')
			xthen = getXthen x, reject
			return if xthen == $tryErr

			if typeof xthen == 'function'
				resolveXthen x, xthen, resolve, reject
			else
				resolve x
		else
