Bug 592442: WebConsole completion throws if more brackets are closed than opened. r=sdwilsh f=ddahl a=b:final

This commit is contained in:
Mihai Sucan 2010-11-15 06:46:38 -05:00
parent d7cf6cdbbc
commit 3528ae048c
3 changed files with 45 additions and 1 deletions

View File

@ -3696,7 +3696,7 @@ function findCompletionBeginning(aStr)
}
else if (CLOSE_BODY.indexOf(c) != -1) {
var last = bodyStack.pop();
if (OPEN_CLOSE_BODY[last.token] != c) {
if (!last || OPEN_CLOSE_BODY[last.token] != c) {
return {
err: "syntax error"
};

View File

@ -99,6 +99,7 @@ _BROWSER_TEST_FILES = \
browser_webconsole_bug_588342_document_focus.js \
browser_webconsole_bug_595934_message_categories.js \
browser_webconsole_bug_601352_scroll.js \
browser_webconsole_bug_592442_closing_brackets.js \
head.js \
$(NULL)

View File

@ -0,0 +1,43 @@
/* vim:set ts=2 sw=2 sts=2 et: */
/* ***** BEGIN LICENSE BLOCK *****
* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/
*
* Contributor(s):
* Julian Viereck <jviereck@mozilla.com>
* Patrick Walton <pcwalton@mozilla.com>
* Mihai Șucan <mihai.sucan@gmail.com>
*
* ***** END LICENSE BLOCK ***** */
// Tests that, when the user types an extraneous closing bracket, no error
// appears.
function test() {
addTab("data:text/html,test for bug 592442");
browser.addEventListener("load", testExtraneousClosingBrackets, true);
}
function testExtraneousClosingBrackets(aEvent) {
browser.removeEventListener(aEvent.type, arguments.callee, true);
openConsole();
let hudId = HUDService.displaysIndex()[0];
let jsterm = HUDService.hudWeakReferences[hudId].get().jsterm;
jsterm.setInputValue("document.getElementById)");
let error = false;
try {
jsterm.complete(jsterm.COMPLETE_HINT_ONLY);
}
catch (ex) {
error = true;
}
ok(!error, "no error was thrown when an extraneous bracket was inserted");
HUDService.deactivateHUDForContext(tab);
finishTest();
}