     # mode.  We exclude single-key mappings (that is, printable keys) because when users press printable keys
     # in insert mode they expect the character to be input, not to be droppped into some special Vimium
     # mode.
-    Settings.set "passNextKeyKeys",
-      (key for own key of @keyToCommandRegistry when @keyToCommandRegistry[key].command == "passNextKey" and 1 < key.length)
+    passNextKeys = Object.keys(@keyToCommandRegistry)
+      .filter((key) => @keyToCommandRegistry[key].command == "passNextKey" && key.length > 1)
+    Settings.set "passNextKeyKeys", passNextKeys
+    return
 
   # Lower-case the appropriate portions of named keys.
   #

      else if 0 == key.search specialKeyRegexp
        [modifiers..., keyChar] = RegExp.$1.split "-"
        keyChar = keyChar.toLowerCase() unless keyChar.length == 1
        modifiers = (modifier.toLowerCase() for modifier in modifiers)
        modifiers.sort()
        ["<#{[modifiers..., keyChar].join '-'}>", @parseKeySequence(RegExp.$2)...]
      else
        [key[0], @parseKeySequence(key[1..])...]


    @keyToCommandRegistry = {}
    @mapKeyRegistry = {}

    # TODO(philc):
    configLines = ("map #{key} #{command}" for own key, command of defaultKeyMappings)
    configLines.push BgUtils.parseLines(customKeyMappings)...

    seen = {}
    unmapAll = false
    for line in configLines.reverse()
