Skip to content

Commit 6b75ad5

Browse files
committed
Output uglify parse errors with correct line/col.
1 parent ced616a commit 6b75ad5

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

src/pimscript.coffee

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ if process.argv.length > 4
3535
else
3636
outputFilename = "#{filename}.adsafe.js"
3737

38+
lineDiff = 0
39+
lines = script.split("\n").length
40+
3841
details = null
3942
re = /\/\*\![A-Z_]+([\s\S]+?)\*\//
4043
script = script.replace re, (header) ->
@@ -46,6 +49,8 @@ script = script.replace re, (header) ->
4649
unless details?
4750
console.error JSON.stringify {errors:[{id:"NOHEADER"}]}
4851
process.exit 1
52+
lines2 = script.split("\n").length
53+
lineDiff = lines2 - lines
4954

5055
for k,v of overrideDetails
5156
details[k] = v
@@ -58,6 +63,7 @@ if isNaN(id) or !isFinite(id)
5863
# Alias dependencies.
5964
accessList = details.access ? []
6065
for access in accessList
66+
lineDiff++
6167
script = " var #{access} = lib.#{access}();\n#{script}"
6268

6369
walk = (ast) ->
@@ -266,7 +272,13 @@ walk = (ast) ->
266272
console.error util.inspect ast, false, null, true
267273
return ast
268274

269-
ast = parser.parse script
275+
try
276+
ast = parser.parse script
277+
catch e
278+
console.error JSON.stringify {errors:[{id:"PARSEFAIL",message:e.message,line:e.line-lineDiff,col:e.col}]}
279+
if VERBOSE
280+
console.log util.inspect e, false, null, true
281+
process.exit 1
270282
if VERBOSE
271283
console.log util.inspect ast, false, null, true
272284
walk ast, 0

0 commit comments

Comments
 (0)