Skip to content

Commit 3c880bf

Browse files
committed
Move a try/catch from compile to loadFile
This try/catch should only be necessary for dynamically loaded files. Also added a lengthier explanation of why this try/catch is needed.
1 parent 8e90aae commit 3c880bf

File tree

2 files changed

+25
-23
lines changed

2 files changed

+25
-23
lines changed

lib/coffee-script/coffee-script.js

Lines changed: 15 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/coffee-script.coffee

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,7 @@ exports.compile = compile = (code, options = {}) ->
3333
if options.sourceMap
3434
map = new SourceMap
3535

36-
try
37-
fragments = parser.parse(lexer.tokenize code, options).compileToFragments options
38-
catch err
39-
# Add source file information to error so it can be pretty-printed later.
40-
err.filename = options.filename
41-
err.code = code
42-
throw err
36+
fragments = parser.parse(lexer.tokenize code, options).compileToFragments options
4337

4438
currentLine = 0
4539
currentLine += 1 if options.header
@@ -152,7 +146,15 @@ exports.eval = (code, options = {}) ->
152146
loadFile = (module, filename) ->
153147
raw = fs.readFileSync filename, 'utf8'
154148
stripped = if raw.charCodeAt(0) is 0xFEFF then raw.substring 1 else raw
155-
answer = compile(stripped, {filename, sourceMap: true, literate: helpers.isLiterate filename})
149+
try
150+
answer = compile(stripped, {filename, sourceMap: true, literate: helpers.isLiterate filename})
151+
catch err
152+
# As the filename and code of a dynamically loaded file will be different
153+
# from the original file compiled with CoffeeScript.run, add that
154+
# information to error so it can be pretty-printed later.
155+
err.filename = filename
156+
err.code = stripped
157+
throw err
156158
sourceMaps[filename] = answer.sourceMap
157159
module._compile answer.js, filename
158160

0 commit comments

Comments
 (0)