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

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

Issue 27491002: Cosmetic: Add macros for NaN, undefined and Infinity to native js code. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 7 years, 2 months 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
« no previous file with comments | « src/json.js ('k') | src/macros.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
179 // Start with breakpoints. Convert their line/column positions and 179 // Start with breakpoints. Convert their line/column positions and
180 // temporary remove. 180 // temporary remove.
181 var break_points_restorer = TemporaryRemoveBreakPoints(script, change_log); 181 var break_points_restorer = TemporaryRemoveBreakPoints(script, change_log);
182 182
183 var old_script; 183 var old_script;
184 184
185 // Create an old script only if there are function that should be linked 185 // Create an old script only if there are function that should be linked
186 // to old version. 186 // to old version.
187 if (link_to_old_script_list.length == 0) { 187 if (link_to_old_script_list.length == 0) {
188 %LiveEditReplaceScript(script, new_source, null); 188 %LiveEditReplaceScript(script, new_source, null);
189 old_script = void 0; 189 old_script = UNDEFINED;
190 } else { 190 } else {
191 var old_script_name = CreateNameForOldScript(script); 191 var old_script_name = CreateNameForOldScript(script);
192 192
193 // Update the script text and create a new script representing an old 193 // Update the script text and create a new script representing an old
194 // version of the script. 194 // version of the script.
195 old_script = %LiveEditReplaceScript(script, new_source, 195 old_script = %LiveEditReplaceScript(script, new_source,
196 old_script_name); 196 old_script_name);
197 197
198 var link_to_old_script_report = new Array(); 198 var link_to_old_script_report = new Array();
199 change_log.push( { linked_to_old_script: link_to_old_script_report } ); 199 change_log.push( { linked_to_old_script: link_to_old_script_report } );
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
259 259
260 // Sort function infos by start position field. 260 // Sort function infos by start position field.
261 var compile_info = new Array(); 261 var compile_info = new Array();
262 var old_index_map = new Array(); 262 var old_index_map = new Array();
263 for (var i = 0; i < raw_compile_info.length; i++) { 263 for (var i = 0; i < raw_compile_info.length; i++) {
264 var info = new FunctionCompileInfo(raw_compile_info[i]); 264 var info = new FunctionCompileInfo(raw_compile_info[i]);
265 // Remove all links to the actual script. Breakpoints system and 265 // Remove all links to the actual script. Breakpoints system and
266 // LiveEdit itself believe that any function in heap that points to a 266 // LiveEdit itself believe that any function in heap that points to a
267 // particular script is a regular function. 267 // particular script is a regular function.
268 // For some functions we will restore this link later. 268 // For some functions we will restore this link later.
269 %LiveEditFunctionSetScript(info.shared_function_info, void 0); 269 %LiveEditFunctionSetScript(info.shared_function_info, UNDEFINED);
270 compile_info.push(info); 270 compile_info.push(info);
271 old_index_map.push(i); 271 old_index_map.push(i);
272 } 272 }
273 273
274 for (var i = 0; i < compile_info.length; i++) { 274 for (var i = 0; i < compile_info.length; i++) {
275 var k = i; 275 var k = i;
276 for (var j = i + 1; j < compile_info.length; j++) { 276 for (var j = i + 1; j < compile_info.length; j++) {
277 if (compile_info[k].start_position > compile_info[j].start_position) { 277 if (compile_info[k].start_position > compile_info[j].start_position) {
278 k = j; 278 k = j;
279 } 279 }
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after
535 CHANGED: "changed", 535 CHANGED: "changed",
536 // Function is changed but cannot be patched. 536 // Function is changed but cannot be patched.
537 DAMAGED: "damaged" 537 DAMAGED: "damaged"
538 }; 538 };
539 539
540 function CodeInfoTreeNode(code_info, children, array_index) { 540 function CodeInfoTreeNode(code_info, children, array_index) {
541 this.info = code_info; 541 this.info = code_info;
542 this.children = children; 542 this.children = children;
543 // an index in array of compile_info 543 // an index in array of compile_info
544 this.array_index = array_index; 544 this.array_index = array_index;
545 this.parent = void 0; 545 this.parent = UNDEFINED;
546 546
547 this.status = FunctionStatus.UNCHANGED; 547 this.status = FunctionStatus.UNCHANGED;
548 // Status explanation is used for debugging purposes and will be shown 548 // Status explanation is used for debugging purposes and will be shown
549 // in user UI if some explanations are needed. 549 // in user UI if some explanations are needed.
550 this.status_explanation = void 0; 550 this.status_explanation = UNDEFINED;
551 this.new_start_pos = void 0; 551 this.new_start_pos = UNDEFINED;
552 this.new_end_pos = void 0; 552 this.new_end_pos = UNDEFINED;
553 this.corresponding_node = void 0; 553 this.corresponding_node = UNDEFINED;
554 this.unmatched_new_nodes = void 0; 554 this.unmatched_new_nodes = UNDEFINED;
555 555
556 // 'Textual' correspondence/matching is weaker than 'pure' 556 // 'Textual' correspondence/matching is weaker than 'pure'
557 // correspondence/matching. We need 'textual' level for visual presentation 557 // correspondence/matching. We need 'textual' level for visual presentation
558 // in UI, we use 'pure' level for actual code manipulation. 558 // in UI, we use 'pure' level for actual code manipulation.
559 // Sometimes only function body is changed (functions in old and new script 559 // Sometimes only function body is changed (functions in old and new script
560 // textually correspond), but we cannot patch the code, so we see them 560 // textually correspond), but we cannot patch the code, so we see them
561 // as an old function deleted and new function created. 561 // as an old function deleted and new function created.
562 this.textual_corresponding_node = void 0; 562 this.textual_corresponding_node = UNDEFINED;
563 this.textually_unmatched_new_nodes = void 0; 563 this.textually_unmatched_new_nodes = UNDEFINED;
564 564
565 this.live_shared_function_infos = void 0; 565 this.live_shared_function_infos = UNDEFINED;
566 } 566 }
567 567
568 // From array of function infos that is implicitly a tree creates 568 // From array of function infos that is implicitly a tree creates
569 // an actual tree of functions in script. 569 // an actual tree of functions in script.
570 function BuildCodeInfoTree(code_info_array) { 570 function BuildCodeInfoTree(code_info_array) {
571 // Throughtout all function we iterate over input array. 571 // Throughtout all function we iterate over input array.
572 var index = 0; 572 var index = 0;
573 573
574 // Recursive function that builds a branch of tree. 574 // Recursive function that builds a branch of tree.
575 function BuildNode() { 575 function BuildNode() {
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
733 old_children[old_index].new_end_pos) { 733 old_children[old_index].new_end_pos) {
734 old_children[old_index].corresponding_node = 734 old_children[old_index].corresponding_node =
735 new_children[new_index]; 735 new_children[new_index];
736 old_children[old_index].textual_corresponding_node = 736 old_children[old_index].textual_corresponding_node =
737 new_children[new_index]; 737 new_children[new_index];
738 if (scope_change_description) { 738 if (scope_change_description) {
739 old_children[old_index].status = FunctionStatus.DAMAGED; 739 old_children[old_index].status = FunctionStatus.DAMAGED;
740 old_children[old_index].status_explanation = 740 old_children[old_index].status_explanation =
741 "Enclosing function is now incompatible. " + 741 "Enclosing function is now incompatible. " +
742 scope_change_description; 742 scope_change_description;
743 old_children[old_index].corresponding_node = void 0; 743 old_children[old_index].corresponding_node = UNDEFINED;
744 } else if (old_children[old_index].status != 744 } else if (old_children[old_index].status !=
745 FunctionStatus.UNCHANGED) { 745 FunctionStatus.UNCHANGED) {
746 ProcessNode(old_children[old_index], 746 ProcessNode(old_children[old_index],
747 new_children[new_index]); 747 new_children[new_index]);
748 if (old_children[old_index].status == FunctionStatus.DAMAGED) { 748 if (old_children[old_index].status == FunctionStatus.DAMAGED) {
749 unmatched_new_nodes_list.push( 749 unmatched_new_nodes_list.push(
750 old_children[old_index].corresponding_node); 750 old_children[old_index].corresponding_node);
751 old_children[old_index].corresponding_node = void 0; 751 old_children[old_index].corresponding_node = UNDEFINED;
752 old_node.status = FunctionStatus.CHANGED; 752 old_node.status = FunctionStatus.CHANGED;
753 } 753 }
754 } 754 }
755 } else { 755 } else {
756 old_children[old_index].status = FunctionStatus.DAMAGED; 756 old_children[old_index].status = FunctionStatus.DAMAGED;
757 old_children[old_index].status_explanation = 757 old_children[old_index].status_explanation =
758 "No corresponding function in new script found"; 758 "No corresponding function in new script found";
759 old_node.status = FunctionStatus.CHANGED; 759 old_node.status = FunctionStatus.CHANGED;
760 unmatched_new_nodes_list.push(new_children[new_index]); 760 unmatched_new_nodes_list.push(new_children[new_index]);
761 textually_unmatched_new_nodes_list.push(new_children[new_index]); 761 textually_unmatched_new_nodes_list.push(new_children[new_index]);
(...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after
1134 // Function is public. 1134 // Function is public.
1135 this.RestartFrame = RestartFrame; 1135 this.RestartFrame = RestartFrame;
1136 1136
1137 // Functions are public for tests. 1137 // Functions are public for tests.
1138 this.TestApi = { 1138 this.TestApi = {
1139 PosTranslator: PosTranslator, 1139 PosTranslator: PosTranslator,
1140 CompareStrings: CompareStrings, 1140 CompareStrings: CompareStrings,
1141 ApplySingleChunkPatch: ApplySingleChunkPatch 1141 ApplySingleChunkPatch: ApplySingleChunkPatch
1142 }; 1142 };
1143 }; 1143 };
OLDNEW
« no previous file with comments | « src/json.js ('k') | src/macros.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698