aboutsummaryrefslogtreecommitdiffstats
path: root/lib/handler_stack.coffee
diff options
context:
space:
mode:
Diffstat (limited to 'lib/handler_stack.coffee')
-rw-r--r--lib/handler_stack.coffee15
1 files changed, 12 insertions, 3 deletions
diff --git a/lib/handler_stack.coffee b/lib/handler_stack.coffee
index 3d635005..b0fefc7d 100644
--- a/lib/handler_stack.coffee
+++ b/lib/handler_stack.coffee
@@ -38,6 +38,7 @@ class HandlerStack
# @stopBubblingAndTrue.
bubbleEvent: (type, event) ->
@eventNumber += 1
+ eventNumber = @eventNumber
# We take a copy of the array in order to avoid interference from concurrent removes (for example, to
# avoid calling the same handler twice, because elements have been spliced out of the array by remove).
for handler in @stack[..].reverse()
@@ -45,13 +46,15 @@ class HandlerStack
if handler?.id and handler[type]
@currentId = handler.id
result = handler[type].call @, event
- @logResult type, event, handler, result if @debug
+ @logResult eventNumber, type, event, handler, result if @debug
if not result
DomUtils.suppressEvent event if @isChromeEvent event
return false
return true if result == @stopBubblingAndTrue
return false if result == @stopBubblingAndFalse
return @bubbleEvent type, event if result == @restartBubbling
+ else
+ @logResult eventNumber, type, event, handler, "skip" if @debug
true
remove: (id = @currentId) ->
@@ -80,7 +83,7 @@ class HandlerStack
false
# Debugging.
- logResult: (type, event, handler, result) ->
+ logResult: (eventNumber, type, event, handler, result) ->
# FIXME(smblott). Badge updating is too noisy, so we filter it out. However, we do need to look at how
# many badge update events are happening. It seems to be more than necessary. We also filter out
# registerKeyQueue as unnecessarily noisy and not particularly helpful.
@@ -90,9 +93,15 @@ class HandlerStack
when @stopBubblingAndTrue then "stop/true"
when @stopBubblingAndFalse then "stop/false"
when @restartBubbling then "rebubble"
+ when "skip" then "skip"
when true then "continue"
label ||= if result then "continue/truthy" else "suppress"
- console.log "#{@eventNumber}", type, handler._name, label
+ console.log "#{eventNumber}", type, handler._name, label
+
+ show: ->
+ console.log "#{@eventNumber}:"
+ for handler in @stack[..].reverse()
+ console.log " ", handler._name
# For tests only.
reset: ->