From 8edefd21a7dd6f325b3eefdec7c954ddf9b51236 Mon Sep 17 00:00:00 2001 From: nightwing Date: Sun, 2 Sep 2012 17:07:55 +0400 Subject: [PATCH] fix tests --- lib/ace/mode/javascript_worker.js | 14 +++++++------- lib/ace/mode/javascript_worker_test.js | 21 +++++++++++++-------- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/lib/ace/mode/javascript_worker.js b/lib/ace/mode/javascript_worker.js index f229ee4f..25993826 100644 --- a/lib/ace/mode/javascript_worker.js +++ b/lib/ace/mode/javascript_worker.js @@ -102,7 +102,6 @@ oop.inherits(JavaScriptWorker, Mirror); return; } var errors = []; - var ranges = []; // jshint reports many false errors // report them as error only if code is actually invalid @@ -111,11 +110,6 @@ oop.inherits(JavaScriptWorker, Mirror); eval("throw 0;" + value); } catch(e) { if (e != 0) { - errors.push({ - row: e.lineNumber, - type: "error", - text: e.message - }); maxErrorLevel = "error"; } } @@ -133,7 +127,13 @@ oop.inherits(JavaScriptWorker, Mirror); var type = "warning"; if (raw == "Missing semicolon.") { - type = "info"; + var str = error.evidence.substr(error.character); + str = str.charAt(str.search(/\S/)); + if (maxErrorLevel == "error" && str && /[\w\d{([]/.test(str)) { + error.reason = 'Missing ";" before statement'; + type = "error"; + } else + type = "info"; } else if (disabledWarningsRe.test(raw)) { continue; diff --git a/lib/ace/mode/javascript_worker_test.js b/lib/ace/mode/javascript_worker_test.js index c3093a26..fe482d5c 100644 --- a/lib/ace/mode/javascript_worker_test.js +++ b/lib/ace/mode/javascript_worker_test.js @@ -58,11 +58,11 @@ module.exports = { worker.setValue("Juhu Kinners"); worker.deferredUpdate.call(); - var error = this.sender.events[0][1]; - assert.equal(error.text, "missing ; before statement"); + var error = this.sender.events[0][1][0]; + assert.equal(error.text, 'Missing ";" before statement'); assert.equal(error.type, "error"); assert.equal(error.row, 0); - assert.equal(error.column, null); + assert.equal(error.column, 4); }, "test invalid multi line string": function() { @@ -70,18 +70,23 @@ module.exports = { worker.setValue('"a\n\\nn"'); worker.deferredUpdate.call(); - var error = this.sender.events[0][1]; - assert.equal(error.text, "Unterminated string literal"); + var error = this.sender.events[0][1][0]; + assert.equal(error.text, "Unclosed string."); assert.equal(error.type, "error"); assert.equal(error.row, 0); - assert.equal(error.column, null); + assert.equal(error.column, 0); }, - "test check for narcissus bug": function() { + "test another invalid string": function() { var worker = new JavaScriptWorker(this.sender); worker.setValue("if('"); worker.deferredUpdate.call(); - assert.equal(this.sender.events[0][1].type, "error"); + + var error = this.sender.events[0][1][0]; + assert.equal(error.text, "Unclosed string."); + assert.equal(error.type, "error"); + assert.equal(error.row, 0); + assert.equal(error.column, 3); } };