fix narcissus issue
This commit is contained in:
parent
6a38ad951a
commit
679ecc3611
3 changed files with 18 additions and 3 deletions
|
|
@ -41,6 +41,7 @@ define(function(require, exports, module) {
|
||||||
var oop = require("../lib/oop");
|
var oop = require("../lib/oop");
|
||||||
var Mirror = require("../worker/mirror").Mirror;
|
var Mirror = require("../worker/mirror").Mirror;
|
||||||
var lint = require("../worker/jshint").JSHINT;
|
var lint = require("../worker/jshint").JSHINT;
|
||||||
|
var parser = require("../narcissus/parser");
|
||||||
|
|
||||||
var JavaScriptWorker = exports.JavaScriptWorker = function(sender) {
|
var JavaScriptWorker = exports.JavaScriptWorker = function(sender) {
|
||||||
Mirror.call(this, sender);
|
Mirror.call(this, sender);
|
||||||
|
|
@ -56,7 +57,6 @@ oop.inherits(JavaScriptWorker, Mirror);
|
||||||
value = value.replace(/^#!.*\n/, "\n");
|
value = value.replace(/^#!.*\n/, "\n");
|
||||||
|
|
||||||
// var start = new Date();
|
// var start = new Date();
|
||||||
var parser = require("../narcissus/jsparse");
|
|
||||||
try {
|
try {
|
||||||
parser.parse(value);
|
parser.parse(value);
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
|
|
|
||||||
|
|
@ -71,6 +71,19 @@ module.exports = {
|
||||||
assert.equal(error.row, 0);
|
assert.equal(error.row, 0);
|
||||||
assert.equal(error.column, null);
|
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() {
|
"test check for narcissus bug": function() {
|
||||||
var worker = new JavaScriptWorker(this.sender);
|
var worker = new JavaScriptWorker(this.sender);
|
||||||
|
|
|
||||||
|
|
@ -435,8 +435,10 @@ Pp.Statements = function Statements(n, topLevel) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
if (this.done())
|
try {
|
||||||
this.unexpectedEOF = true;
|
if (this.done())
|
||||||
|
this.unexpectedEOF = true;
|
||||||
|
} catch(e) {}
|
||||||
throw e;
|
throw e;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue