Skip to content

Commit a65a64b

Browse files
committed
Merge pull request #143 from gabegorelick/dont-swallow-parse-errors
Output error message on espree error
2 parents ddc7bda + d80313f commit a65a64b

3 files changed

Lines changed: 30 additions & 6 deletions

File tree

lib/extract.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,16 @@ var Extractor = (function () {
179179
}
180180
});
181181
} catch (err) {
182+
var errMsg = 'Error parsing';
183+
if (filename) {
184+
errMsg += ' ' + filename;
185+
}
186+
if (err.lineNumber) {
187+
errMsg += ' at line ' + err.lineNumber;
188+
errMsg += ' column ' + err.column;
189+
}
190+
191+
console.warn(errMsg);
182192
return;
183193
}
184194

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@
3030
"grunt-contrib-jshint": "~0.11.2",
3131
"grunt-contrib-watch": "~0.6.1",
3232
"grunt-jscs": "^1.8.0",
33-
"grunt-mocha-cli": "^1.13.1"
33+
"grunt-mocha-cli": "^1.13.1",
34+
"sinon": "^1.17.4"
3435
},
3536
"keywords": [
3637
"angular",

test/extract_javascript.js

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
'use strict';
22

33
var assert = require('assert');
4+
var sinon = require('sinon');
45
var testExtract = require('./utils').testExtract;
56

67
describe('Extracting from Javascript', function () {
@@ -78,11 +79,23 @@ describe('Extracting from Javascript', function () {
7879
assert.deepEqual(catalog.items[1].references, ['test/fixtures/deeppath_catalog.js:4']);
7980
});
8081

81-
it('supports invalid javascript syntax without exception', function () {
82-
var files = [
83-
'test/fixtures/deeppath_catalog_invalid.js'
84-
];
85-
testExtract(files);
82+
describe('invalid javascript', function () {
83+
beforeEach(function () {
84+
sinon.stub(console, 'warn', function () {
85+
// respect the rule of silence
86+
});
87+
});
88+
89+
afterEach(function () {
90+
console.warn.restore();
91+
});
92+
93+
it('should not throw an exception', function () {
94+
var files = [
95+
'test/fixtures/deeppath_catalog_invalid.js'
96+
];
97+
testExtract(files);
98+
});
8699
});
87100

88101
describe('from HTML <script> tags', function () {

0 commit comments

Comments
 (0)