fix narcissus issue

This commit is contained in:
Fabian Jakobs 2012-04-05 12:44:39 +02:00
commit 679ecc3611
3 changed files with 18 additions and 3 deletions

View file

@ -41,6 +41,7 @@ define(function(require, exports, module) {
var oop = require("../lib/oop");
var Mirror = require("../worker/mirror").Mirror;
var lint = require("../worker/jshint").JSHINT;
var parser = require("../narcissus/parser");
var JavaScriptWorker = exports.JavaScriptWorker = function(sender) {
Mirror.call(this, sender);
@ -56,7 +57,6 @@ oop.inherits(JavaScriptWorker, Mirror);
value = value.replace(/^#!.*\n/, "\n");
// var start = new Date();
var parser = require("../narcissus/jsparse");
try {
parser.parse(value);
} catch(e) {

View file

@ -71,6 +71,19 @@ module.exports = {
assert.equal(error.row, 0);
assert.equal(error.column, null);
},
"test invalid multi line string": function() {
var worker = new JavaScriptWorker(this.sender);
worker.setValue('"a\n\\nn"');
worker.deferredUpdate.call();
console.log(this.sender.events)
var error = this.sender.events[0][1];
assert.equal(error.text, "Unterminated string literal");
assert.equal(error.type, "error");
assert.equal(error.row, 0);
assert.equal(error.column, null);
},
"test check for narcissus bug": function() {
var worker = new JavaScriptWorker(this.sender);

View file

@ -435,8 +435,10 @@ Pp.Statements = function Statements(n, topLevel) {
}
}
} catch (e) {
if (this.done())
this.unexpectedEOF = true;
try {
if (this.done())
this.unexpectedEOF = true;
} catch(e) {}
throw e;
}
}