(bound, dropShift)
| 709 | } |
| 710 | |
| 711 | function doHandleBinding(bound, dropShift) { |
| 712 | if (typeof bound == "string") { |
| 713 | bound = commands[bound]; |
| 714 | if (!bound) return false; |
| 715 | } |
| 716 | var prevShift = shiftSelecting; |
| 717 | try { |
| 718 | if (options.readOnly) suppressEdits = true; |
| 719 | if (dropShift) shiftSelecting = null; |
| 720 | bound(instance); |
| 721 | } catch(e) { |
| 722 | if (e != Pass) throw e; |
| 723 | return false; |
| 724 | } finally { |
| 725 | shiftSelecting = prevShift; |
| 726 | suppressEdits = false; |
| 727 | } |
| 728 | return true; |
| 729 | } |
| 730 | function handleKeyBinding(e) { |
| 731 | // Handle auto keymap transitions |
| 732 | var startMap = getKeyMap(options.keyMap), next = startMap.auto; |
no test coverage detected