1 |
|
2 | StackTrace = require './StackTrace'
|
3 | File = require './File'
|
4 | CompiledCoffee = require './CompiledCoffee'
|
5 | TokenMatcher = require './TokenMatcher'
|
6 |
|
7 | class Trace
|
8 |
|
9 | constructor: (err) ->
|
10 |
|
11 | @error = err
|
12 | @stack = new StackTrace err.stack
|
13 | @message = err.message
|
14 |
|
15 | for line in @stack.lines
|
16 |
|
17 | try
|
18 | file = new File line.filename
|
19 | catch e
|
20 | file = {}
|
21 |
|
22 | if /\.js$/.test file.filename
|
23 |
|
24 | line.file = file
|
25 |
|
26 | else if /\.coffee$/.test file.filename
|
27 |
|
28 | line.file = file
|
29 | line.row = Number TokenMatcher.match file,
|
30 | ( new CompiledCoffee file.filename ).tokens[ line.row - 1 ]
|
31 | line.column = null
|
32 |
|
33 | module.exports = Trace |
\ | No newline at end of file |