Skip to content

Commit

Permalink
improve source mapping for member accesses
Browse files Browse the repository at this point in the history
  • Loading branch information
michaelficarra committed Feb 9, 2014
1 parent 9929ac3 commit 3f82a63
Show file tree
Hide file tree
Showing 7 changed files with 29 additions and 8 deletions.
14 changes: 12 additions & 2 deletions lib/compiler.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion lib/parser.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion lib/run.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 12 additions & 1 deletion src/compiler.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -851,7 +851,18 @@ class exports.Compiler
]
[CS.MemberAccessOp, CS.SoakedMemberAccessOp, ({expression, compile}) ->
if hasSoak this then expr compile generateSoak this
else memberAccess expression, @memberName
else
access = memberAccess expression, @memberName
# manually calculate raw/position info for member name
if @raw
access.property.raw = @memberName
access.property.line = @line
offset = @raw.length - @memberName.length
access.property.column = @column + offset - 1
access.property.offset = @offset + offset - 1
@column += @expression.raw.length
@offset += @expression.raw.length
access
]
[CS.ProtoMemberAccessOp, CS.SoakedProtoMemberAccessOp, ({expression, compile}) ->
if hasSoak this then expr compile generateSoak this
Expand Down
2 changes: 1 addition & 1 deletion src/grammar.pegjs
Original file line number Diff line number Diff line change
Expand Up @@ -214,7 +214,7 @@ var CS = require("./nodes"),
var o = new F;
// rather safely assumes access.op is returning non-Object
access.op.apply(o, [left].concat(access.operands));
return c(o.r(left.raw + access.raw), access);
return c(o.r(left.raw + access.raw), e);
}, e, accesses);
},
Expand Down
2 changes: 1 addition & 1 deletion src/run.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ patchStackTrace = ->
mapString = Module._sourceMaps[filename]?()
if mapString
sourceMap = sourceFiles[filename] ?= new SourceMapConsumer mapString
sourceMap.originalPositionFor {line, column}
sourceMap.originalPositionFor {line, column: column - 1}

frames = for frame in stack
break if frame.getFunction() is exports.runMain
Expand Down
2 changes: 1 addition & 1 deletion test/cli-eval-errors.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ suite 'Command line execution', ->
eq stdout, "1 is main true\n0 is main false\n"

ok stderr.indexOf("cli-eval-errors-files/0.coffee:3:26, <js>:4:9)") > 0
ok stderr.indexOf("cli-eval-errors-files/1.coffee:4:6, <js>:6:9)") > 0
ok stderr.indexOf("cli-eval-errors-files/1.coffee:4:7, <js>:6:9)") > 0

done()

Expand Down

0 comments on commit 3f82a63

Please sign in to comment.