| Index: src/liveedit-debugger.js
|
| diff --git a/src/liveedit-debugger.js b/src/liveedit-debugger.js
|
| index cfcdb818c97e0287a9dd2d0ea37917f0912588ae..451b146bde798e4b4c81b62c39d0adcb1b158630 100644
|
| --- a/src/liveedit-debugger.js
|
| +++ b/src/liveedit-debugger.js
|
| @@ -76,7 +76,17 @@ Debug.LiveEdit = new function() {
|
| try {
|
| new_compile_info = GatherCompileInfo(new_source, script);
|
| } catch (e) {
|
| - throw new Failure("Failed to compile new version of script: " + e);
|
| + var failure =
|
| + new Failure("Failed to compile new version of script: " + e);
|
| + if (e instanceof SyntaxError) {
|
| + var details = {
|
| + type: "liveedit_compile_error",
|
| + syntaxErrorMessage: e.message
|
| + };
|
| + CopyErrorPositionToDetails(e, details);
|
| + failure.details = details;
|
| + }
|
| + throw failure;
|
| }
|
| var root_new_node = BuildCodeInfoTree(new_compile_info);
|
|
|
| @@ -978,6 +988,31 @@ Debug.LiveEdit = new function() {
|
| return "LiveEdit Failure: " + this.message;
|
| };
|
|
|
| + function CopyErrorPositionToDetails(e, details) {
|
| + function createPositionStruct(script, position) {
|
| + if (position == -1) return;
|
| + var location = script.locationFromPosition(position, true);
|
| + if (location == null) return;
|
| + return {
|
| + line: location.line + 1,
|
| + column: location.column + 1,
|
| + position: position
|
| + };
|
| + }
|
| +
|
| + if (!("scriptObject" in e) || !("startPosition" in e)) {
|
| + return;
|
| + }
|
| +
|
| + var script = e.scriptObject;
|
| +
|
| + var position_struct = {
|
| + start: createPositionStruct(script, e.startPosition),
|
| + end: createPositionStruct(script, e.endPosition)
|
| + };
|
| + details.position = position_struct;
|
| + }
|
| +
|
| // A testing entry.
|
| function GetPcFromSourcePos(func, source_pos) {
|
| return %GetFunctionCodePositionFromSource(func, source_pos);
|
|
|