diff --git a/common/content/completion.js b/common/content/completion.js index 8fb21af5..19fec8fc 100644 --- a/common/content/completion.js +++ b/common/content/completion.js @@ -579,7 +579,7 @@ CompletionContext.prototype = { let context = new CompletionContext(this, name, offset); this.contextList.push(context); if (completer) - return completer.apply(self || this, [context].concat(Array.slice(arguments, 4))); + return completer.apply(self || this, [context].concat(Array.slice(arguments, arguments.callee.length))); return context; }, @@ -1803,15 +1803,19 @@ function Completion() //{{{ context.advance(skip[0].length); // Will, and should, throw an error if !(c in opts) - Array.forEach(complete || options["complete"], - function (c) context.fork(c, 0, completion, completion.urlCompleters[c].completer)); + Array.forEach(complete || options["complete"], function (c) { + let completer = completion.urlCompleters[c]; + context.fork.apply(context, [c, 0, completion, completer.completer].concat(completer.args)); + }); }, urlCompleters: {}, addUrlCompleter: function addUrlCompleter(opt) { - this.urlCompleters[opt] = UrlCompleter.apply(null, Array.slice(arguments)); + let completer = UrlCompleter.apply(null, Array.slice(arguments)); + completer.args = Array.slice(arguments, completer.length); + this.urlCompleters[opt] = completer; }, urls: function (context, tags)