Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(283)

Side by Side Diff: src/liveedit-debugger.js

Issue 11421100: Issue 2429, core implementation and the protocol change (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: follow codereview Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 MarkChangedFunctions(root_old_node, pos_translator.GetChunks()); 69 MarkChangedFunctions(root_old_node, pos_translator.GetChunks());
70 70
71 // Find all SharedFunctionInfo's that were compiled from this script. 71 // Find all SharedFunctionInfo's that were compiled from this script.
72 FindLiveSharedInfos(root_old_node, script); 72 FindLiveSharedInfos(root_old_node, script);
73 73
74 // Gather compile information about new version of script. 74 // Gather compile information about new version of script.
75 var new_compile_info; 75 var new_compile_info;
76 try { 76 try {
77 new_compile_info = GatherCompileInfo(new_source, script); 77 new_compile_info = GatherCompileInfo(new_source, script);
78 } catch (e) { 78 } catch (e) {
79 throw new Failure("Failed to compile new version of script: " + e); 79 var failure =
80 new Failure("Failed to compile new version of script: " + e);
81 if (e instanceof SyntaxError) {
82 var details = {
83 type: "liveedit_compile_error",
84 syntaxErrorMessage: e.message
85 };
86 CopyErrorPositionToDetails(e, details);
87 failure.details = details;
88 }
89 throw failure;
80 } 90 }
81 var root_new_node = BuildCodeInfoTree(new_compile_info); 91 var root_new_node = BuildCodeInfoTree(new_compile_info);
82 92
83 // Link recompiled script data with other data. 93 // Link recompiled script data with other data.
84 FindCorrespondingFunctions(root_old_node, root_new_node); 94 FindCorrespondingFunctions(root_old_node, root_new_node);
85 95
86 // Prepare to-do lists. 96 // Prepare to-do lists.
87 var replace_code_list = new Array(); 97 var replace_code_list = new Array();
88 var link_to_old_script_list = new Array(); 98 var link_to_old_script_list = new Array();
89 var link_to_original_script_list = new Array(); 99 var link_to_original_script_list = new Array();
(...skipping 881 matching lines...) Expand 10 before | Expand all | Expand 10 after
971 function Failure(message) { 981 function Failure(message) {
972 this.message = message; 982 this.message = message;
973 } 983 }
974 // Function (constructor) is public. 984 // Function (constructor) is public.
975 this.Failure = Failure; 985 this.Failure = Failure;
976 986
977 Failure.prototype.toString = function() { 987 Failure.prototype.toString = function() {
978 return "LiveEdit Failure: " + this.message; 988 return "LiveEdit Failure: " + this.message;
979 }; 989 };
980 990
991 function CopyErrorPositionToDetails(e, details) {
992 function createPositionStruct(script, position) {
993 if (position == -1) return;
994 var location = script.locationFromPosition(position, true);
995 if (location == null) return;
996 return {
997 line: location.line + 1,
998 column: location.column + 1,
999 position: position
1000 };
1001 }
1002
1003 if (!("scriptObject" in e) || !("startPosition" in e)) {
1004 return;
1005 }
1006
1007 var script = e.scriptObject;
1008
1009 var position_struct = {
1010 start: createPositionStruct(script, e.startPosition),
1011 end: createPositionStruct(script, e.endPosition)
1012 };
1013 details.position = position_struct;
1014 }
1015
981 // A testing entry. 1016 // A testing entry.
982 function GetPcFromSourcePos(func, source_pos) { 1017 function GetPcFromSourcePos(func, source_pos) {
983 return %GetFunctionCodePositionFromSource(func, source_pos); 1018 return %GetFunctionCodePositionFromSource(func, source_pos);
984 } 1019 }
985 // Function is public. 1020 // Function is public.
986 this.GetPcFromSourcePos = GetPcFromSourcePos; 1021 this.GetPcFromSourcePos = GetPcFromSourcePos;
987 1022
988 // LiveEdit main entry point: changes a script text to a new string. 1023 // LiveEdit main entry point: changes a script text to a new string.
989 function SetScriptSource(script, new_source, preview_only, change_log) { 1024 function SetScriptSource(script, new_source, preview_only, change_log) {
990 var old_source = script.source; 1025 var old_source = script.source;
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
1093 // Function is public. 1128 // Function is public.
1094 this.RestartFrame = RestartFrame; 1129 this.RestartFrame = RestartFrame;
1095 1130
1096 // Functions are public for tests. 1131 // Functions are public for tests.
1097 this.TestApi = { 1132 this.TestApi = {
1098 PosTranslator: PosTranslator, 1133 PosTranslator: PosTranslator,
1099 CompareStrings: CompareStrings, 1134 CompareStrings: CompareStrings,
1100 ApplySingleChunkPatch: ApplySingleChunkPatch 1135 ApplySingleChunkPatch: ApplySingleChunkPatch
1101 }; 1136 };
1102 }; 1137 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698