diff options
| -rw-r--r-- | lib/completion.js | 6 | ||||
| -rw-r--r-- | lib/utils.js | 8 |
2 files changed, 11 insertions, 3 deletions
diff --git a/lib/completion.js b/lib/completion.js index 6aec9e83..3c43f28b 100644 --- a/lib/completion.js +++ b/lib/completion.js @@ -410,7 +410,7 @@ var completion = (function() { AsyncFuzzyUrlCompleter.call(this); this.maxResults = maxResults || 1000; } - FuzzyHistoryCompleter.prototype = new AsyncFuzzyUrlCompleter; + utils.extend(AsyncFuzzyUrlCompleter, FuzzyHistoryCompleter); FuzzyHistoryCompleter.prototype.refresh = function() { this.resetCache(); this.fetchFromPort('getHistory', { maxResults: this.maxResults }, function(msg) { @@ -424,7 +424,7 @@ var completion = (function() { var FuzzyBookmarkCompleter = function() { AsyncFuzzyUrlCompleter.call(this); } - FuzzyBookmarkCompleter.prototype = new AsyncFuzzyUrlCompleter; + utils.extend(AsyncFuzzyUrlCompleter, FuzzyBookmarkCompleter); FuzzyBookmarkCompleter.prototype.refresh = function() { this.resetCache(); this.fetchFromPort('getAllBookmarks', {}, function(msg) { @@ -439,7 +439,7 @@ var completion = (function() { var FuzzyTabCompleter = function() { AsyncFuzzyUrlCompleter.call(this); } - FuzzyTabCompleter.prototype = new AsyncFuzzyUrlCompleter; + utils.extend(AsyncFuzzyUrlCompleter, FuzzyTabCompleter); FuzzyTabCompleter.prototype.createAction = function(match) { var open = function() { chrome.extension.sendRequest({ handler: 'selectSpecificTab', id: match.tab.id }); diff --git a/lib/utils.js b/lib/utils.js index 9b5cfcb9..7ed7c9ad 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -39,6 +39,14 @@ var utils = { return document.evaluate(xpath, document.documentElement, namespaceResolver, resultType, null); }, + /** Sets up prototype inheritance */ + extend: function(base, sub) { + function surrogateCtor() { } + surrogateCtor.prototype = base.prototype; + sub.prototype = new surrogateCtor(); + sub.prototype.constructor = sub; + }, + /** Creates a single DOM element from :html */ createElementFromHtml: function(html) { var tmp = document.createElement("div"); |
