SYMBOL INDEX (826 symbols across 54 files) FILE: background_scripts/bg_utils.js function isFirefox (line 7) | function isFirefox() { function getFirefoxVersion (line 13) | async function getFirefoxVersion() { FILE: background_scripts/commands.js class RegistryEntry (line 5) | class RegistryEntry { method constructor (line 22) | constructor(o) { function parseLines (line 36) | function parseLines(text) { function nthRegexIndex (line 44) | function nthRegexIndex(str, regex, n) { method parse (line 67) | parse(configText, shouldLogWarnings) { method parseKeySequence (line 211) | parseKeySequence(key) { method parseCommandOptions (line 238) | parseCommandOptions(optionString) { method init (line 293) | async init() { method loadKeyMappings (line 303) | async loadKeyMappings(userKeyMappingsConfigText) { method installKeyStateMapping (line 336) | async installKeyStateMapping() { method prepareHelpPageData (line 370) | prepareHelpPageData() { FILE: background_scripts/completion/completers.js class Suggestion (line 24) | class Suggestion { method constructor (line 57) | constructor(options) { method computeRelevancy (line 63) | computeRelevancy() { method generateHtml (line 72) | generateHtml() { method getUrlRoot (line 115) | getUrlRoot(url) { method getHostname (line 121) | getHostname(url) { method stripTrailingSlash (line 127) | stripTrailingSlash(url) { method pushMatchingRanges (line 135) | pushMatchingRanges(string, term, ranges) { method highlightQueryTerms (line 159) | highlightQueryTerms(string) { method mergeRanges (line 184) | mergeRanges(ranges) { method shortenUrl (line 200) | shortenUrl() { method boostRelevancyScore (line 221) | static boostRelevancyScore(factor, score) { class BookmarkCompleter (line 262) | class BookmarkCompleter { method filter (line 263) | async filter({ queryTerms }) { method refresh (line 302) | async refresh() { method traverseBookmarks (line 318) | traverseBookmarks(bookmarks) { method traverseBookmarksRecursive (line 327) | traverseBookmarksRecursive(bookmark, results, parent) { method computeRelevancy (line 347) | computeRelevancy(suggestion) { class HistoryCompleter (line 356) | class HistoryCompleter { method filter (line 360) | async filter({ queryTerms, seenTabToOpenCompletionList }) { method computeRelevancy (line 387) | computeRelevancy(suggestion) { class DomainCompleter (line 406) | class DomainCompleter { method filter (line 413) | async filter({ queryTerms, query }) { method sortDomainsByRelevancy (line 432) | sortDomainsByRelevancy(queryTerms, domainCandidates) { method populateDomains (line 444) | async populateDomains() { method onVisited (line 454) | onVisited(newPage) { method onVisitRemoved (line 468) | onVisitRemoved(toRemove) { method parseDomainAndScheme (line 485) | parseDomainAndScheme(url) { class TabCompleter (line 494) | class TabCompleter { method filter (line 495) | async filter({ queryTerms }) { method computeRelevancy (line 526) | computeRelevancy(suggestion) { class SearchEngineCompleter (line 535) | class SearchEngineCompleter { method cancel (line 536) | cancel() { method getUserSearchEngineForQuery (line 542) | getUserSearchEngineForQuery(query) { method refresh (line 554) | refresh() { method filter (line 558) | async filter(request) { method computeRelevancy (line 605) | computeRelevancy({ queryTerms, title }) { class MultiCompleter (line 623) | class MultiCompleter { method constructor (line 624) | constructor(completers) { method refresh (line 628) | refresh() { method cancel (line 634) | cancel() { method filter (line 640) | async filter(request) { method postProcessSuggestions (line 670) | postProcessSuggestions(request, queryTerms, suggestions) { method reset (line 712) | reset() { method onLoaded (line 718) | async onLoaded() { method fetchHistory (line 723) | async fetchHistory() { method compareHistoryByUrl (line 747) | compareHistoryByUrl(a, b) { method onVisited (line 755) | onVisited(newPage) { method onVisitRemoved (line 768) | onVisitRemoved(toRemove) { FILE: background_scripts/completion/ranking.js function matches (line 6) | function matches(queryTerms, ...things) { function scoreTerm (line 39) | function scoreTerm(term, string) { function wordRelevancy (line 60) | function wordRelevancy(queryTerms, url, title) { function recencyScore (line 111) | function recencyScore(lastAccessedTime) { function normalizeDifference (line 124) | function normalizeDifference(a, b) { method init (line 132) | init() { method clear (line 137) | clear() { method get (line 151) | get(string, prefix, suffix) { FILE: background_scripts/completion/search_engines.js class BaseEngine (line 36) | class BaseEngine { method constructor (line 37) | constructor(options) { method match (line 42) | match(searchUrl) { method getUrl (line 45) | getUrl(queryTerms) { class Google (line 50) | class Google extends BaseEngine { method constructor (line 51) | constructor() { method parse (line 62) | parse(text) { class GoogleMaps (line 69) | class GoogleMaps extends BaseEngine { method constructor (line 70) | constructor() { method parse (line 87) | parse(text) { class Youtube (line 94) | class Youtube extends BaseEngine { method constructor (line 95) | constructor() { method parse (line 106) | parse(text) { class Wikipedia (line 111) | class Wikipedia extends BaseEngine { method constructor (line 112) | constructor() { method parse (line 123) | parse(text) { class Bing (line 128) | class Bing extends BaseEngine { method constructor (line 129) | constructor() { method parse (line 140) | parse(text) { class Amazon (line 145) | class Amazon extends BaseEngine { method constructor (line 146) | constructor() { method parse (line 158) | parse(text) { class DuckDuckGo (line 163) | class DuckDuckGo extends BaseEngine { method constructor (line 164) | constructor() { method parse (line 175) | parse(text) { class Webster (line 180) | class Webster extends BaseEngine { method constructor (line 181) | constructor() { method parse (line 193) | parse(text) { class Qwant (line 199) | class Qwant extends BaseEngine { method constructor (line 200) | constructor() { method parse (line 211) | parse(text) { class Brave (line 217) | class Brave extends BaseEngine { method constructor (line 218) | constructor() { method parse (line 229) | parse(text) { class Kagi (line 235) | class Kagi extends BaseEngine { method constructor (line 236) | constructor() { method parse (line 247) | parse(text) { FILE: background_scripts/completion/search_wrapper.js class EnginePrefixWrapper (line 11) | class EnginePrefixWrapper { method constructor (line 12) | constructor(searchUrl, engine) { method getUrl (line 17) | getUrl(queryTerms) { method parse (line 38) | parse(responseText) { constant DELAY (line 51) | const DELAY = 100; function get (line 57) | async function get(url) { function lookupEngine (line 78) | function lookupEngine(searchUrl) { function complete (line 95) | async function complete(searchUrl, queryTerms) { function cancel (line 169) | function cancel() { FILE: background_scripts/exclusions.js method clear (line 6) | clear(cache) { method get (line 9) | get(pattern) { function getRule (line 36) | function getRule(url, rules) { function isEnabledForUrl (line 58) | function isEnabledForUrl(url) { function setRules (line 66) | function setRules(rules) { function onSettingsUpdated (line 72) | function onSettingsUpdated() { FILE: background_scripts/main.js function onURLChange (line 71) | function onURLChange(details) { function muteTab (line 102) | function muteTab(tab) { function toggleMuteTab (line 106) | function toggleMuteTab(request, sender) { function getTabIndex (line 161) | function getTabIndex(tab, tabs) { function selectSpecificTab (line 173) | async function selectSpecificTab(request) { function moveTab (line 182) | function moveTab({ count, tab, registryEntry }) { function createRepeatCommand (line 198) | function createRepeatCommand(command) { function nextZoomLevel (line 210) | function nextZoomLevel(currentZoom, steps) { method moveTabToNewWindow (line 302) | moveTabToNewWindow({ count, tab }) { method nextTab (line 314) | nextTab(request) { method previousTab (line 317) | previousTab(request) { method firstTab (line 320) | firstTab(request) { method lastTab (line 323) | lastTab(request) { method removeTab (line 326) | async removeTab({ count, tab }) { method togglePinTab (line 337) | async togglePinTab({ count, tab }) { method setZoom (line 346) | async setZoom({ tabId, registryEntry }) { method zoomIn (line 353) | async zoomIn({ count, tabId }) { method zoomOut (line 358) | async zoomOut({ count, tabId }) { method zoomReset (line 363) | async zoomReset({ tabId }) { method nextFrame (line 367) | async nextFrame({ count, tabId }) { method closeTabsOnLeft (line 402) | async closeTabsOnLeft(request) { method closeTabsOnRight (line 405) | async closeTabsOnRight(request) { method closeOtherTabs (line 408) | async closeOtherTabs(request) { method visitPreviousTab (line 412) | async visitPreviousTab({ count, tab }) { method reload (line 422) | async reload({ count, tab, registryEntry }) { function forCountTabs (line 430) | async function forCountTabs(count, currentTab, callback) { function removeTabsRelative (line 440) | async function removeTabsRelative(direction, { count, tab }) { function selectTab (line 469) | function selectTab(direction, { count, tab }) { function getFrameIdsForTab (line 506) | async function getFrameIdsForTab(tabId) { method broadcastLinkHintsMessage (line 515) | broadcastLinkHintsMessage(request, sender) { method prepareToActivateLinkHintsMode (line 523) | async prepareToActivateLinkHintsMode( method runBackgroundCommand (line 601) | runBackgroundCommand(request, sender) { method getCurrentTabUrl (line 606) | getCurrentTabUrl({ tab }) { method openUrlInNewWindow (line 612) | async openUrlInNewWindow(request) { method openUrlInIncognito (line 615) | async openUrlInIncognito(request) { method openOptionsPageInNewTab (line 622) | openOptionsPageInNewTab(request) { method launchSearchQuery (line 629) | launchSearchQuery({ query, openInNewTab }) { method domReady (line 634) | domReady(_, sender) { method sendMessageToFrames (line 649) | sendMessageToFrames(request, sender) { method broadcastLinkHintsMessage (line 654) | broadcastLinkHintsMessage(request, sender) { method prepareToActivateLinkHintsMode (line 657) | prepareToActivateLinkHintsMode(request, sender) { method initializeFrame (line 661) | async initializeFrame(request, sender) { method getBrowserInfo (line 713) | async getBrowserInfo() { method filterCompletions (line 720) | async filterCompletions(request) { method refreshCompletions (line 733) | refreshCompletions(request) { method cancelCompletions (line 738) | cancelCompletions(request) { function majorVersionHasIncreased (line 802) | function majorVersionHasIncreased(previousVersion) { function showUpgradeMessageIfNecessary (line 811) | async function showUpgradeMessageIfNecessary(onInstalledDetails) { function injectContentScriptsAndCSSIntoExistingTabs (line 851) | async function injectContentScriptsAndCSSIntoExistingTabs() { function initializeExtension (line 890) | async function initializeExtension() { FILE: background_scripts/marks.js function getLocationKey (line 5) | function getLocationKey(markName) { function getBaseUrl (line 10) | function getBaseUrl(url) { function create (line 17) | async function create(req, sender) { function saveMark (line 39) | function saveMark(markInfo) { function goto (line 49) | async function goto(req) { function gotoPositionInTab (line 79) | async function gotoPositionInTab({ tabId, scrollX, scrollY }) { function focusOrLaunch (line 87) | async function focusOrLaunch(markInfo, req) { function pickTab (line 114) | async function pickTab(tabs) { FILE: background_scripts/tab_operations.js function openUrlInCurrentTab (line 10) | async function openUrlInCurrentTab(request) { function openUrlInNewTab (line 52) | async function openUrlInNewTab(request) { function openUrlInNewWindow (line 105) | async function openUrlInNewWindow(request) { FILE: background_scripts/tab_recency.js class TabRecency (line 12) | class TabRecency { method constructor (line 13) | constructor() { method init (line 21) | async init() { method loadFromStorage (line 61) | async loadFromStorage() { method saveToStorage (line 86) | async saveToStorage() { method queueAction (line 91) | queueAction(action, tabId) { method handleAction (line 100) | handleAction(action, tabId) { method register (line 110) | register(tabId) { method deregister (line 116) | deregister(tabId) { method recencyScore (line 122) | recencyScore(tabId) { method getTabsByRecency (line 131) | getTabsByRecency() { FILE: background_scripts/user_search_engines.js class UserSearchEngine (line 5) | class UserSearchEngine { method constructor (line 9) | constructor(o) { function parseConfig (line 22) | function parseConfig(configText) { function set (line 51) | function set(searchEnginesConfigText) { FILE: content_scripts/hud.js constant HUD (line 5) | const HUD = { method abandon (line 9) | abandon() { method handleUIComponentMessage (line 23) | handleUIComponentMessage({ data }) { method init (line 37) | async init(focusable) { method show (line 76) | async show(text, duration) { method showFindMode (line 89) | async showFindMode(findMode = null) { method search (line 97) | search(data) { method hide (line 115) | hide(immediate, updateIndicator) { method hideFindMode (line 138) | hideFindMode({ exitEventIsEnter, exitEventIsEscape }) { method copyToClipboard (line 179) | async copyToClipboard(text) { method pasteFromClipboard (line 185) | async pasteFromClipboard(pasteListener) { method pasteResponse (line 193) | pasteResponse({ data }) { method unfocusIfFocused (line 200) | unfocusIfFocused() { method showClipboardUnavailableMessage (line 211) | async showClipboardUnavailableMessage() { class Tween (line 219) | class Tween { method constructor (line 220) | constructor(cssSelector, insertionPoint) { method fade (line 240) | fade(toAlpha, duration, onComplete) { method stop (line 264) | stop() { method updateStyle (line 268) | updateStyle(opacity) { FILE: content_scripts/link_hints.js class HintMarker (line 16) | class HintMarker { method constructor (line 28) | constructor() { method isLocalMarker (line 31) | isLocalMarker() { class LocalHint (line 37) | class LocalHint { method constructor (line 52) | constructor(o) { class HintDescriptor (line 60) | class HintDescriptor { method constructor (line 64) | constructor(o) { constant OPEN_IN_CURRENT_TAB (line 74) | const OPEN_IN_CURRENT_TAB = { constant OPEN_IN_NEW_BG_TAB (line 78) | const OPEN_IN_NEW_BG_TAB = { constant OPEN_IN_NEW_FG_TAB (line 83) | const OPEN_IN_NEW_FG_TAB = { constant OPEN_WITH_QUEUE (line 88) | const OPEN_WITH_QUEUE = { constant COPY_LINK_URL (line 93) | const COPY_LINK_URL = { method linkActivator (line 96) | linkActivator(link) { constant OPEN_INCOGNITO (line 108) | const OPEN_INCOGNITO = { method linkActivator (line 111) | linkActivator(link) { constant DOWNLOAD_LINK_URL (line 115) | const DOWNLOAD_LINK_URL = { constant COPY_LINK_TEXT (line 120) | const COPY_LINK_TEXT = { method linkActivator (line 123) | linkActivator(link) { constant HOVER_LINK (line 134) | const HOVER_LINK = { method linkActivator (line 137) | linkActivator(link) { constant FOCUS_LINK (line 141) | const FOCUS_LINK = { method linkActivator (line 144) | linkActivator(link) { method willHandleMessage (line 174) | willHandleMessage(messageType) { method sendMessage (line 181) | sendMessage(messageType, request) { method prepareToActivateMode (line 187) | prepareToActivateMode(mode, onExit) { method getHintDescriptors (line 222) | getHintDescriptors({ modeIndex, requestedByHelpDialog }, _sender) { method activateMode (line 248) | activateMode({ frameId, frameIdToHintDescriptors, modeIndex, originating... method updateKeyState (line 275) | updateKeyState(request) { method rotateHints (line 278) | rotateHints() { method setOpenLinkMode (line 281) | setOpenLinkMode({ modeIndex }) { method activateActiveHintMarker (line 284) | activateActiveHintMarker() { method getLocalHint (line 287) | getLocalHint(hint) { method exit (line 291) | exit({ isSuccess }) { method mouseOutOfLastClickedElement (line 301) | mouseOutOfLastClickedElement() { method activateMode (line 312) | activateMode(count, { mode, registryEntry }) { method activateModeToOpenInNewTab (line 339) | activateModeToOpenInNewTab(count) { method activateModeToOpenInNewForegroundTab (line 342) | activateModeToOpenInNewForegroundTab(count) { method activateModeToCopyLinkUrl (line 345) | activateModeToCopyLinkUrl(count) { method activateModeWithQueue (line 348) | activateModeWithQueue() { method activateModeToOpenIncognito (line 351) | activateModeToOpenIncognito(count) { method activateModeToDownloadLink (line 354) | activateModeToDownloadLink(count) { class LinkHintsMode (line 359) | class LinkHintsMode { method constructor (line 361) | constructor(hintDescriptors, mode) { method renderHints (line 412) | renderHints() { method setOpenLinkMode (line 450) | setOpenLinkMode(mode, shouldPropagateToOtherFrames) { method setIndicator (line 464) | setIndicator() { method createMarkerFor (line 476) | createMarkerFor(desc) { method onKeyDownInMode (line 501) | onKeyDownInMode(event) { method updateVisibleMarkers (line 583) | updateVisibleMarkers() { method updateKeyState (line 592) | updateKeyState({ hintKeystrokeQueue, linkTextKeystrokeQueue, tabCount ... method markerOverlapsStack (line 615) | markerOverlapsStack(marker, stack) { method rotateHints (line 625) | rotateHints() { method activateLink (line 696) | activateLink(linkMatched, userMightOverType) { method showMarker (line 767) | showMarker(linkMarker, matchingCharCount) { method hideMarker (line 780) | hideMarker(marker) { method deactivateMode (line 786) | deactivateMode() { method removeHintMarkers (line 791) | removeHintMarkers() { class AlphabetHints (line 800) | class AlphabetHints { method constructor (line 801) | constructor() { method fillInMarkers (line 811) | fillInMarkers(hintMarkers) { method hintStrings (line 831) | hintStrings(linkCount) { method getMatchingHints (line 847) | getMatchingHints(hintMarkers) { method pushKeyChar (line 854) | pushKeyChar(keyChar) { method popKeyChar (line 858) | popKeyChar() { method shouldRotateHints (line 863) | shouldRotateHints() { class FilterHints (line 869) | class FilterHints { method constructor (line 870) | constructor() { method generateHintString (line 888) | generateHintString(linkHintNumber) { method renderMarker (line 899) | renderMarker(marker) { method fillInMarkers (line 908) | fillInMarkers(hintMarkers) { method getMatchingHints (line 920) | getMatchingHints(hintMarkers, tabCount) { method pushKeyChar (line 950) | pushKeyChar(keyChar) { method popKeyChar (line 970) | popKeyChar() { method filterLinkHints (line 975) | filterLinkHints(hintMarkers) { method scoreLinkHint (line 1005) | scoreLinkHint(linkSearchString) { method shouldRotateHints (line 1052) | shouldRotateHints(event) { method getLocalHintsForElement (line 1073) | getLocalHintsForElement(element) { method getElementFromPoint (line 1300) | getElementFromPoint(x, y, root, stack) { method getLocalHints (line 1327) | getLocalHints(requireHref) { method generateLinkText (line 1447) | generateLinkText(hint) { class TypingProtector (line 1496) | class TypingProtector extends Mode { method constructor (line 1497) | constructor(delay, callback) { class WaitForEnter (line 1517) | class WaitForEnter extends Mode { method constructor (line 1518) | constructor(callback) { class HoverMode (line 1540) | class HoverMode extends Mode { method constructor (line 1541) | constructor(link) { FILE: content_scripts/marks.js method exit (line 7) | exit(continuation = null) { method getLocationKey (line 18) | getLocationKey(keyChar) { method getMarkString (line 22) | getMarkString() { method setPreviousPosition (line 30) | setPreviousPosition() { method showMessage (line 37) | showMessage(message, keyChar) { method isGlobalMark (line 45) | isGlobalMark(event, keyChar) { method activateCreateMode (line 53) | activateCreateMode(_count, { registryEntry }) { method activateGotoMode (line 90) | activateGotoMode(_count, { registryEntry }) { FILE: content_scripts/mode.js class Mode (line 29) | class Mode { method init (line 33) | init(options) { method setIndicator (line 205) | setIndicator(indicator) { method setIndicator (line 212) | static setIndicator() { method push (line 216) | push(handlers) { method unshift (line 223) | unshift(handlers) { method onExit (line 230) | onExit(handler) { method exit (line 234) | exit(...args) { method logModes (line 258) | logModes() { method log (line 267) | log(...args) { method top (line 274) | static top() { method reset (line 279) | static reset() { class SuppressAllKeyboardEvents (line 292) | class SuppressAllKeyboardEvents extends Mode { method constructor (line 293) | constructor(options) { class CacheAllKeydownEvents (line 306) | class CacheAllKeydownEvents extends SuppressAllKeyboardEvents { method constructor (line 307) | constructor(options) { method replayKeydownEvents (line 322) | replayKeydownEvents() { FILE: content_scripts/mode_find.js class SuppressPrintable (line 5) | class SuppressPrintable extends Mode { method constructor (line 6) | constructor(options) { class PostFindMode (line 45) | class PostFindMode extends SuppressPrintable { method constructor (line 46) | constructor() { class FindMode (line 83) | class FindMode extends Mode { method constructor (line 84) | constructor(options) { method exit (line 123) | exit(event) { method restoreSelection (line 131) | restoreSelection() { method findInPlace (line 141) | findInPlace(query, options) { method updateQuery (line 156) | static updateQuery(query) { method updateActiveRegexIndices (line 215) | static updateActiveRegexIndices() { method getQueryFromRegexMatches (line 239) | static getQueryFromRegexMatches() { method getNextQueryFromRegexMatches (line 248) | static getNextQueryFromRegexMatches(backwards) { method getQuery (line 275) | static getQuery(backwards) { method saveQuery (line 286) | static saveQuery() { method execute (line 291) | static execute(query, options) { method handleEscape (line 347) | static handleEscape() { method handleEnter (line 361) | static handleEnter() { method findNext (line 367) | static findNext(backwards) { method checkReturnToViewPort (line 386) | checkReturnToViewPort() { function getAllTextNodes (line 492) | function getAllTextNodes(node) { FILE: content_scripts/mode_insert.js class InsertMode (line 1) | class InsertMode extends Mode { method constructor (line 2) | constructor(options) { method isActive (line 76) | isActive(event) { method getActiveElement (line 86) | getActiveElement() { method suppressEvent (line 94) | static suppressEvent(event) { class PassNextKeyMode (line 103) | class PassNextKeyMode extends Mode { method constructor (line 104) | constructor(count) { FILE: content_scripts/mode_key_handler.js class KeyHandlerMode (line 14) | class KeyHandlerMode extends Mode { method setKeyMapping (line 15) | setKeyMapping(keyMapping) { method setPassKeys (line 19) | setPassKeys(passKeys) { method setCommandHandler (line 25) | setCommandHandler(commandHandler) { method reset (line 30) | reset(countPrefix) { method init (line 36) | init(options) { method onKeydown (line 60) | onKeydown(event) { method isMappedKey (line 89) | isMappedKey(keyChar) { method isCountKey (line 96) | isCountKey(keyChar) { method isPassKey (line 105) | isPassKey(keyChar) { method isInResetState (line 119) | isInResetState() { method handleKeyChar (line 123) | handleKeyChar(keyChar) { FILE: content_scripts/mode_normal.js class NormalMode (line 1) | class NormalMode extends KeyHandlerMode { method init (line 2) | init(options) { method commandHandler (line 27) | commandHandler({ command: registryEntry, count }) { function findSelectedHelper (line 79) | function findSelectedHelper(backwards) { method scrollToBottom (line 89) | scrollToBottom() { method scrollToTop (line 93) | scrollToTop(count) { method scrollToLeft (line 97) | scrollToLeft() { method scrollToRight (line 100) | scrollToRight() { method scrollUp (line 103) | scrollUp(count) { method scrollDown (line 106) | scrollDown(count) { method scrollPageUp (line 109) | scrollPageUp(count) { method scrollPageDown (line 112) | scrollPageDown(count) { method scrollFullPageUp (line 115) | scrollFullPageUp(count) { method scrollFullPageDown (line 118) | scrollFullPageDown(count) { method scrollLeft (line 121) | scrollLeft(count) { method scrollRight (line 124) | scrollRight(count) { method goBack (line 129) | goBack(count) { method goForward (line 132) | goForward(count) { method goUp (line 137) | goUp(count) { method goToRoot (line 151) | goToRoot() { method toggleViewSource (line 155) | toggleViewSource() { method copyCurrentUrl (line 166) | copyCurrentUrl() { method openCopiedUrlInNewTab (line 179) | openCopiedUrlInNewTab(count, request) { method openCopiedUrlInCurrentTab (line 190) | openCopiedUrlInCurrentTab() { method enterInsertMode (line 197) | enterInsertMode() { method enterVisualMode (line 203) | enterVisualMode() { method enterVisualLineMode (line 209) | enterVisualLineMode() { method enterFindMode (line 215) | enterFindMode() { method performFind (line 221) | performFind(count) { method performBackwardsFind (line 227) | performBackwardsFind(count) { method findSelected (line 233) | findSelected() { method findSelectedBackwards (line 237) | findSelectedBackwards() { method mainFrame (line 242) | mainFrame() { method showHelp (line 245) | showHelp(sourceFrameId) { method passNextKey (line 249) | passNextKey(count, options) { method goPrevious (line 258) | goPrevious() { method goNext (line 265) | goNext() { method focusInput (line 272) | focusInput(count) { function findLink (line 406) | function findLink(linkStrings) { function findElementWithRelValue (line 487) | function findElementWithRelValue(value) { class FocusSelector (line 499) | class FocusSelector extends Mode { method constructor (line 500) | constructor(hints, visibleInputs, selectedInputIndex) { method exit (line 539) | exit() { FILE: content_scripts/mode_visual.js class Movement (line 12) | class Movement { method constructor (line 13) | constructor(alterMethod) { method getNextForwardCharacter (line 21) | getNextForwardCharacter() { method nextCharacterIsWordCharacter (line 36) | nextCharacterIsWordCharacter() { method runMovement (line 56) | runMovement(...args) { method reverseSelection (line 112) | reverseSelection() { method extendByOneCharacter (line 136) | extendByOneCharacter(direction) { method getDirection (line 146) | getDirection() { method collapseSelectionToAnchor (line 163) | collapseSelectionToAnchor() { method collapseSelectionToFocus (line 172) | collapseSelectionToFocus() { method setSelectionRange (line 181) | setSelectionRange(range) { method selectLexicalEntity (line 189) | selectLexicalEntity(entity, count) { method selectLine (line 205) | selectLine(count) { method scrollIntoView (line 218) | scrollIntoView() { class VisualMode (line 229) | class VisualMode extends KeyHandlerMode { method init (line 230) | init(options) { method commandHandler (line 366) | commandHandler({ command: { command }, count }) { method find (line 382) | find(count, backwards) { method yank (line 407) | yank(args) { method "aw" (line 444) | "aw"(count) { method "as" (line 447) | "as"(count) { method "n" (line 451) | "n"(count) { method "N" (line 454) | "N"(count) { method "/" (line 457) | "/"() { method "y" (line 462) | "y"() { method "Y" (line 465) | "Y"(count) { method "p" (line 469) | "p"() { method "P" (line 472) | "P"() { method "v" (line 475) | "v"() { method "V" (line 478) | "V"() { method "c" (line 481) | "c"() { method "o" (line 492) | "o"() { class VisualLineMode (line 497) | class VisualLineMode extends VisualMode { method init (line 498) | init(options) { method commandHandler (line 506) | commandHandler({ command: { command }, count }) { method extendSelection (line 537) | extendSelection() { class CaretMode (line 551) | class CaretMode extends VisualMode { method init (line 552) | init(options) { method commandHandler (line 579) | commandHandler(...args) { method establishInitialSelectionAnchor (line 592) | establishInitialSelectionAnchor() { FILE: content_scripts/scroller.js method init (line 188) | init() { method installCancelEventListener (line 195) | installCancelEventListener() { method wouldNotInitiateScroll (line 226) | wouldNotInitiateScroll() { method scroll (line 243) | scroll(element, direction, amount, continuous) { method init (line 337) | init() { method reset (line 355) | reset() { method scrollBy (line 362) | scrollBy(direction, amount, factor, continuous) { method scrollTo (line 396) | scrollTo(direction, pos) { method isScrollableElement (line 412) | isScrollableElement(element) { method scrollIntoView (line 422) | scrollIntoView(element) { FILE: content_scripts/ui_component.js class UIComponent (line 11) | class UIComponent { method load (line 29) | async load(iframeUrl, className, messageHandler) { method handleDarkReaderFilter (line 128) | handleDarkReaderFilter() { method setIframeVisible (line 146) | setIframeVisible(visible) { method postMessage (line 159) | async postMessage(data) { method show (line 169) | async show(messageData = {}, focusOptions = {}) { method hide (line 182) | async hide(shouldRefocusOriginalFrame) { FILE: content_scripts/vimium_frontend.js function windowIsFocused (line 13) | function windowIsFocused() { function initWindowIsFocused (line 17) | function initWindowIsFocused() { function isWindowFocusable (line 42) | function isWindowFocusable() { class GrabBackFocus (line 49) | class GrabBackFocus extends Mode { method constructor (line 50) | constructor() { method grabBackFocus (line 109) | grabBackFocus(element) { method click (line 130) | click(event) { function installModes (line 160) | function installModes() { function installListener (line 204) | function installListener(element, event, callback) { function initializeOnDomReady (line 253) | async function initializeOnDomReady() { function setScrollPosition (line 277) | function setScrollPosition({ scrollX, scrollY }) { function focusThisFrame (line 319) | function focusThisFrame(request) { method getFocusStatus (line 355) | getFocusStatus(_request, _sender) { method focusFrame (line 361) | focusFrame(request) { method getScrollPosition (line 364) | getScrollPosition(_ignoredA, _ignoredB) { method runInTopFrame (line 371) | runInTopFrame({ sourceFrameId, registryEntry }) { method linkHintsMessage (line 378) | linkHintsMessage(request, sender) { method showMessage (line 383) | showMessage(request) { function handleMessage (line 388) | async function handleMessage(request, sender) { function initializePreDomReady (line 414) | async function initializePreDomReady() { function checkIfEnabledForUrl (line 428) | async function checkIfEnabledForUrl() { method isShowing (line 457) | isShowing() { method abort (line 462) | abort() { method toggle (line 469) | async toggle(request) { FILE: content_scripts/vomnibar.js method activate (line 10) | activate(sourceFrameId, registryEntry) { method activateInNewTab (line 15) | activateInNewTab(sourceFrameId, registryEntry) { method activateTabSelection (line 20) | activateTabSelection(sourceFrameId) { method activateBookmarks (line 27) | activateBookmarks(sourceFrameId, registryEntry) { method activateBookmarksInNewTab (line 35) | activateBookmarksInNewTab(sourceFrameId, registryEntry) { method activateEditUrl (line 44) | activateEditUrl(sourceFrameId) { method activateEditUrlInNewTab (line 52) | activateEditUrlInNewTab(sourceFrameId) { method init (line 61) | init() { method open (line 75) | open(sourceFrameId, vomnibarShowOptions) { FILE: lib/chrome_api_stubs.js method connect (line 26) | connect() { method addListener (line 38) | addListener() {} method sendMessage (line 40) | sendMessage(message) { method getManifest (line 46) | getManifest() { method getURL (line 49) | getURL(url) { method get (line 55) | async get() { method set (line 58) | async set() {} method get (line 61) | async get() { method set (line 64) | async set() {} method get (line 67) | async get() { method set (line 70) | async set() {} method addListener (line 73) | addListener() {} method getURL (line 78) | getURL(url) { FILE: lib/dom_utils.js method isReady (line 5) | isReady() { method documentReady (line 10) | documentReady() { method documentComplete (line 21) | documentComplete() { method createElement (line 40) | createElement(tagName) { method removeElement (line 58) | removeElement(el) { method isTopFrame (line 65) | isTopFrame() { method makeXPath (line 74) | makeXPath(elementArray) { method evaluateXPath (line 84) | evaluateXPath(xpath, resultType) { method getVisibleClientRect (line 102) | getVisibleClientRect(element, testChildren) { method cropRectToVisible (line 174) | cropRectToVisible(rect) { method getClientRectsForAreas (line 195) | getClientRectsForAreas(imgClientRect, areaEls) { method isSelectable (line 247) | isSelectable(element) { method isEditable (line 268) | isEditable(element) { method isEmbed (line 274) | isEmbed(element) { method isFocusable (line 279) | isFocusable(element) { method isDOMDescendant (line 283) | isDOMDescendant(parent, child) { method isSelected (line 293) | isSelected(element) { method simulateSelect (line 310) | simulateSelect(element) { method simulateClick (line 341) | simulateClick(element, modifiers) { method simulateMouseEvent (line 359) | simulateMouseEvent(event, element, modifiers) { method simulateClickDefaultAction (line 386) | simulateClickDefaultAction(element, modifiers) { method simulateHover (line 420) | simulateHover(element, modifiers) { method simulateUnhover (line 425) | simulateUnhover(element, modifiers) { method addFlashRect (line 430) | addFlashRect(rect) { method getViewportTopLeft (line 442) | getViewportTopLeft() { method suppressPropagation (line 464) | suppressPropagation(event) { method suppressEvent (line 468) | suppressEvent(event) { method keyup (line 484) | keyup(event) { method blur (line 495) | blur(event) { method getElementWithFocus (line 516) | getElementWithFocus(selection, backwards) { method getSelectionFocusElement (line 531) | getSelectionFocusElement() { method getContainingElement (line 549) | getContainingElement(element) { method windowIsTooSmall (line 556) | windowIsTooSmall() { method injectUserCss (line 563) | injectUserCss(parent) { FILE: lib/find_mode_history.js method init (line 9) | async init() { method getQuery (line 34) | getQuery(index) { method saveQuery (line 39) | async saveQuery(query) { method refreshRawQueryList (line 59) | refreshRawQueryList(query, rawQueryList) { FILE: lib/handler_stack.js class HandlerStack (line 1) | class HandlerStack { method constructor (line 2) | constructor() { method push (line 29) | push(handler) { method unshift (line 37) | unshift(handler) { method bubbleEvent (line 49) | bubbleEvent(type, event) { method remove (line 96) | remove(id) { method isChromeEvent (line 111) | isChromeEvent(event) { method alwaysContinueBubbling (line 120) | alwaysContinueBubbling(handler = null) { method alwaysSuppressPropagation (line 127) | alwaysSuppressPropagation(handler = null) { method logResult (line 135) | logResult(eventNumber, type, event, handler, result) { method show (line 158) | show() { method reset (line 166) | reset() { FILE: lib/keyboard_utils.js method init (line 17) | init() { method getKeyChar (line 34) | getKeyChar(event) { method getKeyCharString (line 76) | getKeyCharString(event) { method isBackspace (line 112) | isBackspace(event) { method isPrintable (line 116) | isPrintable(event) { method isModifier (line 121) | isModifier(event) { FILE: lib/rect.js method create (line 4) | create(x1, y1, x2, y2) { method copy (line 15) | copy(rect) { method translate (line 27) | translate(rect, x, y) { method subtract (line 41) | subtract(rect1, rect2) { method intersects (line 83) | intersects(rect1, rect2) { method intersectsStrict (line 91) | intersectsStrict(rect1, rect2) { method equals (line 96) | equals(rect1, rect2) { method intersect (line 103) | intersect(rect1, rect2) { FILE: lib/settings.js method onLoaded (line 98) | async onLoaded() { method chromeStorageOnChanged (line 104) | async chromeStorageOnChanged(_changes, area) { method load (line 114) | async load() { method isLoaded (line 131) | isLoaded() { method get (line 135) | get(key) { method set (line 142) | async set(key, value) { method getSettings (line 150) | getSettings() { method migratePre2_0 (line 154) | migratePre2_0(settings) { method migratePre2_4 (line 186) | migratePre2_4(settings) { method migratePre2_4_1 (line 209) | migratePre2_4_1(settings) { method migrateSettingsIfNecessary (line 231) | migrateSettingsIfNecessary(settings) { method setSettings (line 238) | async setSettings(settings) { method pruneOutDefaultValues (line 256) | pruneOutDefaultValues(settings) { method clear (line 267) | async clear() { FILE: lib/url_utils.js method init (line 15) | async init() { method isUrl (line 36) | async isUrl(str) { method convertToUrl (line 92) | async convertToUrl(string) { method hasChromeProtocol (line 108) | hasChromeProtocol(url) { method hasJavascriptProtocol (line 112) | hasJavascriptProtocol(url) { method urlHasProtocol (line 117) | urlHasProtocol(url) { method createSearchUrl (line 122) | createSearchUrl(query, searchUrl) { FILE: lib/utils.js method debugLog (line 27) | debugLog() { method isFirefox (line 42) | isFirefox() { method firefoxVersion (line 49) | firefoxVersion() { method getCurrentVersion (line 54) | getCurrentVersion() { method populateBrowserInfo (line 58) | async populateBrowserInfo() { method escapeHtml (line 73) | escapeHtml(string) { method decodeURIByParts (line 86) | decodeURIByParts(uri) { method isString (line 126) | isString(obj) { method distinctCharacters (line 131) | distinctCharacters(str) { method compareVersions (line 138) | compareVersions(versionA, versionB) { method keyBy (line 161) | keyBy(array, key) { method zip (line 173) | zip(arrays) { method pick (line 178) | pick(object, propertyList) { method hasUpperCase (line 189) | hasUpperCase(s) { method matchesAnyRegexp (line 194) | matchesAnyRegexp(regexps, string) { method setTimeout (line 202) | setTimeout(ms, func) { method nextTick (line 207) | nextTick(func) { method promiseWithTimeout (line 211) | promiseWithTimeout(promise, ms) { method makeIdempotent (line 219) | makeIdempotent(func) { method monitorChromeSessionStorage (line 230) | monitorChromeSessionStorage(key, setter) { method assert (line 244) | assert(expression, ...messages) { method addChromeRuntimeOnMessageListener (line 265) | addChromeRuntimeOnMessageListener(requestsHandled, listenerFn) { method assertType (line 286) | assertType(schema, o) { class SimpleCache (line 321) | class SimpleCache { method constructor (line 325) | constructor(expiry, maxEntries) { method has (line 335) | has(key) { method set (line 341) | set(key, value = null) { method get (line 352) | get(key) { method rotate (line 365) | rotate(force) { method clear (line 379) | clear() { method addEventListener (line 387) | addEventListener(eventName, listener) { method dispatchEvent (line 393) | dispatchEvent(eventName) { method removeEventListener (line 400) | removeEventListener(eventName, listener) { FILE: make.js function shell (line 17) | async function shell(procName, argsArray = []) { function createFirefoxManifest (line 33) | function createFirefoxManifest(manifest) { function parseManifestFile (line 87) | async function parseManifestFile() { function checkForCommonBuildIssues (line 94) | async function checkForCommonBuildIssues() { function checkFilesFromManifestArePresent (line 114) | async function checkFilesFromManifestArePresent(manifest) { function getPathsFromManifest (line 133) | function getPathsFromManifest(manifest) { function buildStorePackage (line 184) | async function buildStorePackage() { function runUnitTests (line 259) | async function runUnitTests() { function setupPuppeteerPageForTests (line 272) | function setupPuppeteerPageForTests(page) { function runPuppeteerTest (line 313) | async function runPuppeteerTest(page, url) { function isPortAvailable (line 343) | function isPortAvailable(number) { function getAvailablePort (line 353) | function getAvailablePort() { function testDom (line 375) | async function testDom() { FILE: pages/action.js method init (line 9) | async init() { method isVimiumInstalledInTab (line 85) | async isVimiumInstalledInTab(tabId) { method showValidationErrors (line 97) | showValidationErrors() { method showExclusionRulesEditor (line 114) | showExclusionRulesEditor() { method syncEnabledKeysCaption (line 119) | syncEnabledKeysCaption() { method onSave (line 129) | async onSave() { method getPatternRegExp (line 140) | getPatternRegExp(patternStr) { method generateDefaultPattern (line 146) | generateDefaultPattern(url) { FILE: pages/command_listing.js function compareKeys (line 5) | function compareKeys(a, b) { function replaceBackticksWithCodeTags (line 17) | function replaceBackticksWithCodeTags(str) { function populatePage (line 25) | async function populatePage() { FILE: pages/doc_search_completion.js function cleanUpRegexp (line 4) | function cleanUpRegexp(re) { function populatePage (line 11) | function populatePage() { FILE: pages/exclusion_rules_editor.js method init (line 7) | init() { method setForm (line 15) | setForm(exclusionRules = []) { method addRow (line 30) | addRow(pattern, passKeys) { method getRules (line 51) | getRules() { FILE: pages/help_dialog_page.js function compareKeys (line 6) | function compareKeys(a, b) { function ellipsize (line 20) | function ellipsize(s, maxLength) { function isAdvancedCommand (line 26) | function isAdvancedCommand(command, options) { method getShowAdvancedCommands (line 36) | getShowAdvancedCommands() { method init (line 40) | init() { method getRowsForDialog (line 76) | getRowsForDialog(commandToOptionsToKeys) { method getRowEl (line 94) | getRowEl(command, options, keys) { method show (line 126) | async show() { method hide (line 148) | hide() { method toggleAdvancedCommands (line 155) | toggleAdvancedCommands(event) { method showAdvancedCommands (line 169) | showAdvancedCommands(visible) { function init (line 180) | function init() { FILE: pages/hud_page.js constant TIME_TO_WAIT_FOR_IPC_MESSAGES (line 14) | const TIME_TO_WAIT_FOR_IPC_MESSAGES = 17; function setTextInInputElement (line 17) | function setTextInInputElement(inputEl, text) { function onKeyEvent (line 29) | function onKeyEvent(event) { function ensureClipboardIsAvailable (line 80) | function ensureClipboardIsAvailable() { method show (line 90) | show(data) { method hidden (line 98) | hidden() { method showFindMode (line 107) | showFindMode() { method updateMatchesCount (line 161) | updateMatchesCount({ matchCount, showMatchText }) { method copyToClipboard (line 175) | copyToClipboard(message) { method pasteFromClipboard (line 193) | pasteFromClipboard() { function init (line 212) | function init() { FILE: pages/options.js function init (line 30) | async function init() { function getOptionEl (line 102) | function getOptionEl(optionName) { function resetInputValue (line 107) | function resetInputValue(event) { function setFormFromSettings (line 117) | function setFormFromSettings(settings) { function getSettingsFromForm (line 147) | function getSettingsFromForm() { function getValidationErrors (line 180) | function getValidationErrors() { function addValidationMessage (line 217) | function addValidationMessage(el, message) { function showValidationErrors (line 227) | function showValidationErrors() { function removeDuplicateChars (line 254) | function removeDuplicateChars(str) { function saveOptions (line 266) | async function saveOptions() { function showElement (line 280) | function showElement(el, visible) { function maintainNewTabUrlView (line 286) | function maintainNewTabUrlView() { function maintainLinkHintsView (line 300) | function maintainLinkHintsView() { function prepareBackupSettings (line 317) | function prepareBackupSettings() { function onDownloadBackupClicked (line 327) | function onDownloadBackupClicked() { function onUploadBackupClicked (line 333) | function onUploadBackupClicked() { FILE: pages/ui_component_messenger.js function registerPortWithOwnerPage (line 8) | async function registerPortWithOwnerPage(event) { function unregister (line 25) | async function unregister() { function init (line 30) | function init() { function openPort (line 34) | function openPort(port) { function registerHandler (line 44) | function registerHandler(messageHandlerFn) { function postMessage (line 48) | function postMessage(data) { function dispatchReadyEventWhenReady (line 57) | function dispatchReadyEventWhenReady() { FILE: pages/vomnibar_page.js function reset (line 20) | function reset() { function activate (line 24) | async function activate(options) { class VomnibarUI (line 53) | class VomnibarUI { method constructor (line 54) | constructor() { method setQuery (line 67) | setQuery(query) { method setActiveUserSearchEngine (line 70) | setActiveUserSearchEngine(userSearchEngine) { method setInitialSelectionValue (line 74) | setInitialSelectionValue(initialSelectionValue) { method setForceNewTab (line 77) | setForceNewTab(forceNewTab) { method setCompleterName (line 80) | setCompleterName(name) { method isUserSearchEngineActive (line 86) | isUserSearchEngineActive() { method hide (line 98) | hide(onHiddenCallback = null) { method onHidden (line 109) | onHidden() { method reset (line 115) | reset() { method updateSelection (line 126) | updateSelection() { method actionFromKeyEvent (line 152) | actionFromKeyEvent(event) { method onKeyEvent (line 186) | async onKeyEvent(event) { method handleEnterKey (line 252) | async handleEnterKey(event) { method getInputValueAsQuery (line 311) | getInputValueAsQuery() { method updateCompletions (line 316) | async updateCompletions() { method renderCompletions (line 343) | renderCompletions(completions) { method refreshCompletions (line 348) | refreshCompletions() { method cancelCompletions (line 355) | cancelCompletions() { method onInput (line 364) | onInput() { method getUserSearchEngineForQuery (line 386) | getUserSearchEngineForQuery() { method update (line 399) | async update() { method openCompletion (line 404) | openCompletion(completion, openInNewTab) { method launchUrl (line 412) | async launchUrl(url, openInNewTab) { method initDom (line 424) | initDom() { function init (line 447) | function init() { FILE: test_harnesses/vomnibar_harness.js function setup (line 4) | function setup() { FILE: tests/dom_tests/dom_tests.js method preventDefault (line 191) | preventDefault() {} method stopImmediatePropagation (line 192) | stopImmediatePropagation() {} class Test (line 1146) | class Test extends Mode { method constructor (line 1147) | constructor() { method exit (line 1152) | exit() { FILE: tests/unit_tests/completion/completers_test.js method addListener (line 129) | addListener(listener) { method removeListener (line 132) | removeListener() {} method addListener (line 135) | addListener(listener) { method removeListener (line 138) | removeListener() {} method addListener (line 198) | addListener() {} method removeListener (line 198) | removeListener() {} method addListener (line 199) | addListener() {} method removeListener (line 199) | removeListener() {} method addListener (line 227) | addListener() {} method removeListener (line 227) | removeListener() {} method addListener (line 228) | addListener() {} method removeListener (line 228) | removeListener() {} method addListener (line 279) | addListener(_listener) { method addListener (line 283) | addListener(listener) { FILE: tests/unit_tests/handler_stack_test.js method keydown (line 146) | keydown() { FILE: tests/unit_tests/hud_page_test.js function newKeyEvent (line 6) | function newKeyEvent(properties) { FILE: tests/unit_tests/test_chrome_stubs.js method set (line 10) | async set(items) { method get (line 23) | async get(keysArg) { method remove (line 40) | async remove(key) { method clear (line 48) | async clear() { method getURL (line 76) | getURL() { method getManifest (line 79) | getManifest() { method addListener (line 83) | addListener() { method addListener (line 88) | addListener() { method addListener (line 93) | addListener() {} method addListener (line 96) | addListener() {} method getURL (line 101) | getURL(path) { method getBackgroundPage (line 104) | getBackgroundPage() { method getViews (line 107) | getViews() { method executeScript (line 113) | executeScript() {} method query (line 117) | query() {} method get (line 121) | get(_id) {} method addListener (line 123) | addListener() { method addListener (line 128) | addListener() { method addListener (line 133) | addListener() { method addListener (line 138) | addListener() { method addListener (line 143) | addListener() { method addListener (line 148) | addListener() { method query (line 152) | query() { method sendMessage (line 155) | sendMessage(_id, _properties) {} method update (line 156) | update(_id, _properties) {} method addListener (line 161) | addListener() {} method addListener (line 164) | addListener() {} method addListener (line 167) | addListener() {} method addListener (line 173) | addListener() { method getAll (line 177) | getAll() { method getCurrent (line 180) | getCurrent() { method addListener (line 184) | addListener() { method update (line 188) | update(_id, _properties) {} method setBadgeBackgroundColor (line 192) | setBadgeBackgroundColor() {} method addListener (line 201) | addListener(func) { method call (line 206) | call(key, value, area) { method callEmpty (line 213) | callEmpty(key) { FILE: tests/unit_tests/test_helper.js function jsdomStub (line 23) | async function jsdomStub(htmlFile) { FILE: tests/unit_tests/ui_component_test.js function stubPostMessage (line 6) | function stubPostMessage(iframeEl, fn) { FILE: tests/unit_tests/vomnibar_page_test.js function newKeyEvent (line 6) | function newKeyEvent(properties) { FILE: tests/vendor/shoulda.js method isTrue (line 10) | isTrue(value) { method isFalse (line 16) | isFalse(value) { method equal (line 23) | equal(expected, actual) { method throwsError (line 33) | throwsError(expression, errorName) { method fail (line 56) | fail(message) { method _print (line 61) | _print(object) { function ensureCalled (line 81) | function ensureCalled(fn) { class AssertionError (line 93) | class AssertionError extends Error { method constructor (line 94) | constructor(message) { function Context (line 106) | function Context(name) { function context (line 119) | function context(name, fn) { function setup (line 141) | function setup(fn) { function teardown (line 145) | function teardown(fn) { function should (line 149) | function should(name, fn) { method run (line 179) | async run(testNameFilter) { method reset (line 198) | reset() { method runContext (line 208) | async runContext(context, parentContexts, testNameFilter) { method runTest (line 225) | async runTest(testMethod, contexts, testNameFilter) { method fullyQualifiedName (line 306) | fullyQualifiedName(testName, contexts) { method printTestSummary (line 310) | printTestSummary() { method printFailure (line 318) | printFailure(testName, failureMessage) { function run (line 323) | function run(testNameFilter) { function reset (line 327) | function reset() { function getStats (line 334) | function getStats() { function stub (line 346) | function stub(object, propertyName, returnValue) { function returns (line 359) | function returns(value) { function clearStubs (line 363) | function clearStubs() {