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

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

Issue 8701006: Clean up JavaScript files to better follow coding standard. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Remove more empty statments and fix bug. Created 9 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
« no previous file with comments | « src/date.js ('k') | src/json.js » ('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 2006-2008 the V8 project authors. All rights reserved. 1 // Copyright 2006-2008 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 268 matching lines...) Expand 10 before | Expand all | Expand 10 after
279 var copy = new ScriptBreakPoint(Debug.ScriptBreakPointType.ScriptId, 279 var copy = new ScriptBreakPoint(Debug.ScriptBreakPointType.ScriptId,
280 other_script.id, this.line_, this.column_, this.groupId_); 280 other_script.id, this.line_, this.column_, this.groupId_);
281 copy.number_ = next_break_point_number++; 281 copy.number_ = next_break_point_number++;
282 script_break_points.push(copy); 282 script_break_points.push(copy);
283 283
284 copy.hit_count_ = this.hit_count_; 284 copy.hit_count_ = this.hit_count_;
285 copy.active_ = this.active_; 285 copy.active_ = this.active_;
286 copy.condition_ = this.condition_; 286 copy.condition_ = this.condition_;
287 copy.ignoreCount_ = this.ignoreCount_; 287 copy.ignoreCount_ = this.ignoreCount_;
288 return copy; 288 return copy;
289 } 289 };
290 290
291 291
292 ScriptBreakPoint.prototype.number = function() { 292 ScriptBreakPoint.prototype.number = function() {
293 return this.number_; 293 return this.number_;
294 }; 294 };
295 295
296 296
297 ScriptBreakPoint.prototype.groupId = function() { 297 ScriptBreakPoint.prototype.groupId = function() {
298 return this.groupId_; 298 return this.groupId_;
299 }; 299 };
(...skipping 28 matching lines...) Expand all
328 return this.column_; 328 return this.column_;
329 }; 329 };
330 330
331 331
332 ScriptBreakPoint.prototype.actual_locations = function() { 332 ScriptBreakPoint.prototype.actual_locations = function() {
333 var locations = []; 333 var locations = [];
334 for (var i = 0; i < this.break_points_.length; i++) { 334 for (var i = 0; i < this.break_points_.length; i++) {
335 locations.push(this.break_points_[i].actual_location); 335 locations.push(this.break_points_[i].actual_location);
336 } 336 }
337 return locations; 337 return locations;
338 } 338 };
339 339
340 340
341 ScriptBreakPoint.prototype.update_positions = function(line, column) { 341 ScriptBreakPoint.prototype.update_positions = function(line, column) {
342 this.line_ = line; 342 this.line_ = line;
343 this.column_ = column; 343 this.column_ = column;
344 } 344 };
345 345
346 346
347 ScriptBreakPoint.prototype.hit_count = function() { 347 ScriptBreakPoint.prototype.hit_count = function() {
348 return this.hit_count_; 348 return this.hit_count_;
349 }; 349 };
350 350
351 351
352 ScriptBreakPoint.prototype.active = function() { 352 ScriptBreakPoint.prototype.active = function() {
353 return this.active_; 353 return this.active_;
354 }; 354 };
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
470 } 470 }
471 break_points = remaining_break_points; 471 break_points = remaining_break_points;
472 this.break_points_ = []; 472 this.break_points_ = [];
473 }; 473 };
474 474
475 475
476 // Function called from runtime when a new script is compiled to set any script 476 // Function called from runtime when a new script is compiled to set any script
477 // break points set in this script. 477 // break points set in this script.
478 function UpdateScriptBreakPoints(script) { 478 function UpdateScriptBreakPoints(script) {
479 for (var i = 0; i < script_break_points.length; i++) { 479 for (var i = 0; i < script_break_points.length; i++) {
480 if (script_break_points[i].type() == Debug.ScriptBreakPointType.ScriptName & & 480 var break_point = script_break_points[i];
481 script_break_points[i].matchesScript(script)) { 481 if ((break_point.type() == Debug.ScriptBreakPointType.ScriptName) &&
482 script_break_points[i].set(script); 482 break_point.matchesScript(script)) {
483 break_point.set(script);
483 } 484 }
484 } 485 }
485 } 486 }
486 487
487 488
488 function GetScriptBreakPoints(script) { 489 function GetScriptBreakPoints(script) {
489 var result = []; 490 var result = [];
490 for (var i = 0; i < script_break_points.length; i++) { 491 for (var i = 0; i < script_break_points.length; i++) {
491 if (script_break_points[i].matchesScript(script)) { 492 if (script_break_points[i].matchesScript(script)) {
492 result.push(script_break_points[i]); 493 result.push(script_break_points[i]);
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
578 Debug.sourcePosition = function(f) { 579 Debug.sourcePosition = function(f) {
579 if (!IS_FUNCTION(f)) throw new Error('Parameters have wrong types.'); 580 if (!IS_FUNCTION(f)) throw new Error('Parameters have wrong types.');
580 return %FunctionGetScriptSourcePosition(f); 581 return %FunctionGetScriptSourcePosition(f);
581 }; 582 };
582 583
583 584
584 Debug.findFunctionSourceLocation = function(func, opt_line, opt_column) { 585 Debug.findFunctionSourceLocation = function(func, opt_line, opt_column) {
585 var script = %FunctionGetScript(func); 586 var script = %FunctionGetScript(func);
586 var script_offset = %FunctionGetScriptSourcePosition(func); 587 var script_offset = %FunctionGetScriptSourcePosition(func);
587 return script.locationFromLine(opt_line, opt_column, script_offset); 588 return script.locationFromLine(opt_line, opt_column, script_offset);
588 } 589 };
589 590
590 591
591 // Returns the character position in a script based on a line number and an 592 // Returns the character position in a script based on a line number and an
592 // optional position within that line. 593 // optional position within that line.
593 Debug.findScriptSourcePosition = function(script, opt_line, opt_column) { 594 Debug.findScriptSourcePosition = function(script, opt_line, opt_column) {
594 var location = script.locationFromLine(opt_line, opt_column); 595 var location = script.locationFromLine(opt_line, opt_column);
595 return location ? location.position : null; 596 return location ? location.position : null;
596 } 597 };
597 598
598 599
599 Debug.findBreakPoint = function(break_point_number, remove) { 600 Debug.findBreakPoint = function(break_point_number, remove) {
600 var break_point; 601 var break_point;
601 for (var i = 0; i < break_points.length; i++) { 602 for (var i = 0; i < break_points.length; i++) {
602 if (break_points[i].number() == break_point_number) { 603 if (break_points[i].number() == break_point_number) {
603 break_point = break_points[i]; 604 break_point = break_points[i];
604 // Remove the break point from the list if requested. 605 // Remove the break point from the list if requested.
605 if (remove) { 606 if (remove) {
606 break_points.splice(i, 1); 607 break_points.splice(i, 1);
(...skipping 13 matching lines...) Expand all
620 if (script_break_points[i].number() == break_point_number) { 621 if (script_break_points[i].number() == break_point_number) {
621 return script_break_points[i].actual_locations(); 622 return script_break_points[i].actual_locations();
622 } 623 }
623 } 624 }
624 for (var i = 0; i < break_points.length; i++) { 625 for (var i = 0; i < break_points.length; i++) {
625 if (break_points[i].number() == break_point_number) { 626 if (break_points[i].number() == break_point_number) {
626 return [break_points[i].actual_location]; 627 return [break_points[i].actual_location];
627 } 628 }
628 } 629 }
629 return []; 630 return [];
630 } 631 };
631 632
632 Debug.setBreakPoint = function(func, opt_line, opt_column, opt_condition) { 633 Debug.setBreakPoint = function(func, opt_line, opt_column, opt_condition) {
633 if (!IS_FUNCTION(func)) throw new Error('Parameters have wrong types.'); 634 if (!IS_FUNCTION(func)) throw new Error('Parameters have wrong types.');
634 // Break points in API functions are not supported. 635 // Break points in API functions are not supported.
635 if (%FunctionIsAPIFunction(func)) { 636 if (%FunctionIsAPIFunction(func)) {
636 throw new Error('Cannot set break point in native code.'); 637 throw new Error('Cannot set break point in native code.');
637 } 638 }
638 // Find source position relative to start of the function 639 // Find source position relative to start of the function
639 var break_position = 640 var break_position =
640 this.findFunctionSourceLocation(func, opt_line, opt_column).position; 641 this.findFunctionSourceLocation(func, opt_line, opt_column).position;
(...skipping 29 matching lines...) Expand all
670 return break_point.number(); 671 return break_point.number();
671 } 672 }
672 }; 673 };
673 674
674 675
675 Debug.setBreakPointByScriptIdAndPosition = function(script_id, position, 676 Debug.setBreakPointByScriptIdAndPosition = function(script_id, position,
676 condition, enabled) 677 condition, enabled)
677 { 678 {
678 break_point = MakeBreakPoint(position); 679 break_point = MakeBreakPoint(position);
679 break_point.setCondition(condition); 680 break_point.setCondition(condition);
680 if (!enabled) 681 if (!enabled) {
681 break_point.disable(); 682 break_point.disable();
683 }
682 var scripts = this.scripts(); 684 var scripts = this.scripts();
683 for (var i = 0; i < scripts.length; i++) { 685 for (var i = 0; i < scripts.length; i++) {
684 if (script_id == scripts[i].id) { 686 if (script_id == scripts[i].id) {
685 break_point.actual_position = %SetScriptBreakPoint(scripts[i], position, 687 break_point.actual_position = %SetScriptBreakPoint(scripts[i], position,
686 break_point); 688 break_point);
687 break; 689 break;
688 } 690 }
689 } 691 }
690 return break_point; 692 return break_point;
691 }; 693 };
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
764 script_break_point = script_break_points[i]; 766 script_break_point = script_break_points[i];
765 // Remove the break point from the list if requested. 767 // Remove the break point from the list if requested.
766 if (remove) { 768 if (remove) {
767 script_break_point.clear(); 769 script_break_point.clear();
768 script_break_points.splice(i,1); 770 script_break_points.splice(i,1);
769 } 771 }
770 break; 772 break;
771 } 773 }
772 } 774 }
773 return script_break_point; 775 return script_break_point;
774 } 776 };
775 777
776 778
777 // Sets a breakpoint in a script identified through id or name at the 779 // Sets a breakpoint in a script identified through id or name at the
778 // specified source line and column within that line. 780 // specified source line and column within that line.
779 Debug.setScriptBreakPoint = function(type, script_id_or_name, 781 Debug.setScriptBreakPoint = function(type, script_id_or_name,
780 opt_line, opt_column, opt_condition, 782 opt_line, opt_column, opt_condition,
781 opt_groupId) { 783 opt_groupId) {
782 // Create script break point object. 784 // Create script break point object.
783 var script_break_point = 785 var script_break_point =
784 new ScriptBreakPoint(type, script_id_or_name, opt_line, opt_column, 786 new ScriptBreakPoint(type, script_id_or_name, opt_line, opt_column,
785 opt_groupId); 787 opt_groupId);
786 788
787 // Assign number to the new script break point and add it. 789 // Assign number to the new script break point and add it.
788 script_break_point.number_ = next_break_point_number++; 790 script_break_point.number_ = next_break_point_number++;
789 script_break_point.setCondition(opt_condition); 791 script_break_point.setCondition(opt_condition);
790 script_break_points.push(script_break_point); 792 script_break_points.push(script_break_point);
791 793
792 // Run through all scripts to see if this script break point matches any 794 // Run through all scripts to see if this script break point matches any
793 // loaded scripts. 795 // loaded scripts.
794 var scripts = this.scripts(); 796 var scripts = this.scripts();
795 for (var i = 0; i < scripts.length; i++) { 797 for (var i = 0; i < scripts.length; i++) {
796 if (script_break_point.matchesScript(scripts[i])) { 798 if (script_break_point.matchesScript(scripts[i])) {
797 script_break_point.set(scripts[i]); 799 script_break_point.set(scripts[i]);
798 } 800 }
799 } 801 }
800 802
801 return script_break_point.number(); 803 return script_break_point.number();
802 } 804 };
803 805
804 806
805 Debug.setScriptBreakPointById = function(script_id, 807 Debug.setScriptBreakPointById = function(script_id,
806 opt_line, opt_column, 808 opt_line, opt_column,
807 opt_condition, opt_groupId) { 809 opt_condition, opt_groupId) {
808 return this.setScriptBreakPoint(Debug.ScriptBreakPointType.ScriptId, 810 return this.setScriptBreakPoint(Debug.ScriptBreakPointType.ScriptId,
809 script_id, opt_line, opt_column, 811 script_id, opt_line, opt_column,
810 opt_condition, opt_groupId); 812 opt_condition, opt_groupId);
811 } 813 };
812 814
813 815
814 Debug.setScriptBreakPointByName = function(script_name, 816 Debug.setScriptBreakPointByName = function(script_name,
815 opt_line, opt_column, 817 opt_line, opt_column,
816 opt_condition, opt_groupId) { 818 opt_condition, opt_groupId) {
817 return this.setScriptBreakPoint(Debug.ScriptBreakPointType.ScriptName, 819 return this.setScriptBreakPoint(Debug.ScriptBreakPointType.ScriptName,
818 script_name, opt_line, opt_column, 820 script_name, opt_line, opt_column,
819 opt_condition, opt_groupId); 821 opt_condition, opt_groupId);
820 } 822 };
821 823
822 824
823 Debug.setScriptBreakPointByRegExp = function(script_regexp, 825 Debug.setScriptBreakPointByRegExp = function(script_regexp,
824 opt_line, opt_column, 826 opt_line, opt_column,
825 opt_condition, opt_groupId) { 827 opt_condition, opt_groupId) {
826 return this.setScriptBreakPoint(Debug.ScriptBreakPointType.ScriptRegExp, 828 return this.setScriptBreakPoint(Debug.ScriptBreakPointType.ScriptRegExp,
827 script_regexp, opt_line, opt_column, 829 script_regexp, opt_line, opt_column,
828 opt_condition, opt_groupId); 830 opt_condition, opt_groupId);
829 } 831 };
830 832
831 833
832 Debug.enableScriptBreakPoint = function(break_point_number) { 834 Debug.enableScriptBreakPoint = function(break_point_number) {
833 var script_break_point = this.findScriptBreakPoint(break_point_number, false); 835 var script_break_point = this.findScriptBreakPoint(break_point_number, false);
834 script_break_point.enable(); 836 script_break_point.enable();
835 }; 837 };
836 838
837 839
838 Debug.disableScriptBreakPoint = function(break_point_number) { 840 Debug.disableScriptBreakPoint = function(break_point_number) {
839 var script_break_point = this.findScriptBreakPoint(break_point_number, false); 841 var script_break_point = this.findScriptBreakPoint(break_point_number, false);
840 script_break_point.disable(); 842 script_break_point.disable();
841 }; 843 };
842 844
843 845
844 Debug.changeScriptBreakPointCondition = function(break_point_number, condition) { 846 Debug.changeScriptBreakPointCondition = function(
847 break_point_number, condition) {
845 var script_break_point = this.findScriptBreakPoint(break_point_number, false); 848 var script_break_point = this.findScriptBreakPoint(break_point_number, false);
846 script_break_point.setCondition(condition); 849 script_break_point.setCondition(condition);
847 }; 850 };
848 851
849 852
850 Debug.changeScriptBreakPointIgnoreCount = function(break_point_number, ignoreCou nt) { 853 Debug.changeScriptBreakPointIgnoreCount = function(
854 break_point_number, ignoreCount) {
851 if (ignoreCount < 0) { 855 if (ignoreCount < 0) {
852 throw new Error('Invalid argument'); 856 throw new Error('Invalid argument');
853 } 857 }
854 var script_break_point = this.findScriptBreakPoint(break_point_number, false); 858 var script_break_point = this.findScriptBreakPoint(break_point_number, false);
855 script_break_point.setIgnoreCount(ignoreCount); 859 script_break_point.setIgnoreCount(ignoreCount);
856 }; 860 };
857 861
858 862
859 Debug.scriptBreakPoints = function() { 863 Debug.scriptBreakPoints = function() {
860 return script_break_points; 864 return script_break_points;
861 } 865 };
862 866
863 867
864 Debug.clearStepping = function() { 868 Debug.clearStepping = function() {
865 %ClearStepping(); 869 %ClearStepping();
866 } 870 };
867 871
868 Debug.setBreakOnException = function() { 872 Debug.setBreakOnException = function() {
869 return %ChangeBreakOnException(Debug.ExceptionBreak.Caught, true); 873 return %ChangeBreakOnException(Debug.ExceptionBreak.Caught, true);
870 }; 874 };
871 875
872 Debug.clearBreakOnException = function() { 876 Debug.clearBreakOnException = function() {
873 return %ChangeBreakOnException(Debug.ExceptionBreak.Caught, false); 877 return %ChangeBreakOnException(Debug.ExceptionBreak.Caught, false);
874 }; 878 };
875 879
876 Debug.isBreakOnException = function() { 880 Debug.isBreakOnException = function() {
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
933 this.break_id = break_id; 937 this.break_id = break_id;
934 this.selected_frame = 0; 938 this.selected_frame = 0;
935 } 939 }
936 940
937 ExecutionState.prototype.prepareStep = function(opt_action, opt_count) { 941 ExecutionState.prototype.prepareStep = function(opt_action, opt_count) {
938 var action = Debug.StepAction.StepIn; 942 var action = Debug.StepAction.StepIn;
939 if (!IS_UNDEFINED(opt_action)) action = %ToNumber(opt_action); 943 if (!IS_UNDEFINED(opt_action)) action = %ToNumber(opt_action);
940 var count = opt_count ? %ToNumber(opt_count) : 1; 944 var count = opt_count ? %ToNumber(opt_count) : 1;
941 945
942 return %PrepareStep(this.break_id, action, count); 946 return %PrepareStep(this.break_id, action, count);
943 } 947 };
944 948
945 ExecutionState.prototype.evaluateGlobal = function(source, disable_break, 949 ExecutionState.prototype.evaluateGlobal = function(source, disable_break,
946 opt_additional_context) { 950 opt_additional_context) {
947 return MakeMirror(%DebugEvaluateGlobal(this.break_id, source, 951 return MakeMirror(%DebugEvaluateGlobal(this.break_id, source,
948 Boolean(disable_break), 952 Boolean(disable_break),
949 opt_additional_context)); 953 opt_additional_context));
950 }; 954 };
951 955
952 ExecutionState.prototype.frameCount = function() { 956 ExecutionState.prototype.frameCount = function() {
953 return %GetFrameCount(this.break_id); 957 return %GetFrameCount(this.break_id);
954 }; 958 };
955 959
956 ExecutionState.prototype.threadCount = function() { 960 ExecutionState.prototype.threadCount = function() {
957 return %GetThreadCount(this.break_id); 961 return %GetThreadCount(this.break_id);
958 }; 962 };
959 963
960 ExecutionState.prototype.frame = function(opt_index) { 964 ExecutionState.prototype.frame = function(opt_index) {
961 // If no index supplied return the selected frame. 965 // If no index supplied return the selected frame.
962 if (opt_index == null) opt_index = this.selected_frame; 966 if (opt_index == null) opt_index = this.selected_frame;
963 if (opt_index < 0 || opt_index >= this.frameCount()) 967 if (opt_index < 0 || opt_index >= this.frameCount()) {
964 throw new Error('Illegal frame index.'); 968 throw new Error('Illegal frame index.');
969 }
965 return new FrameMirror(this.break_id, opt_index); 970 return new FrameMirror(this.break_id, opt_index);
966 }; 971 };
967 972
968 ExecutionState.prototype.setSelectedFrame = function(index) { 973 ExecutionState.prototype.setSelectedFrame = function(index) {
969 var i = %ToNumber(index); 974 var i = %ToNumber(index);
970 if (i < 0 || i >= this.frameCount()) throw new Error('Illegal frame index.'); 975 if (i < 0 || i >= this.frameCount()) throw new Error('Illegal frame index.');
971 this.selected_frame = i; 976 this.selected_frame = i;
972 }; 977 };
973 978
974 ExecutionState.prototype.selectedFrame = function() { 979 ExecutionState.prototype.selectedFrame = function() {
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
1081 }; 1086 };
1082 1087
1083 1088
1084 ExceptionEvent.prototype.eventType = function() { 1089 ExceptionEvent.prototype.eventType = function() {
1085 return Debug.DebugEvent.Exception; 1090 return Debug.DebugEvent.Exception;
1086 }; 1091 };
1087 1092
1088 1093
1089 ExceptionEvent.prototype.exception = function() { 1094 ExceptionEvent.prototype.exception = function() {
1090 return this.exception_; 1095 return this.exception_;
1091 } 1096 };
1092 1097
1093 1098
1094 ExceptionEvent.prototype.uncaught = function() { 1099 ExceptionEvent.prototype.uncaught = function() {
1095 return this.uncaught_; 1100 return this.uncaught_;
1096 } 1101 };
1097 1102
1098 1103
1099 ExceptionEvent.prototype.func = function() { 1104 ExceptionEvent.prototype.func = function() {
1100 return this.exec_state_.frame(0).func(); 1105 return this.exec_state_.frame(0).func();
1101 }; 1106 };
1102 1107
1103 1108
1104 ExceptionEvent.prototype.sourceLine = function() { 1109 ExceptionEvent.prototype.sourceLine = function() {
1105 return this.exec_state_.frame(0).sourceLine(); 1110 return this.exec_state_.frame(0).sourceLine();
1106 }; 1111 };
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
1178 o.running = true; 1183 o.running = true;
1179 if (this.before_) { 1184 if (this.before_) {
1180 o.event = "beforeCompile"; 1185 o.event = "beforeCompile";
1181 } else { 1186 } else {
1182 o.event = "afterCompile"; 1187 o.event = "afterCompile";
1183 } 1188 }
1184 o.body = {}; 1189 o.body = {};
1185 o.body.script = this.script_; 1190 o.body.script = this.script_;
1186 1191
1187 return o.toJSONProtocol(); 1192 return o.toJSONProtocol();
1188 } 1193 };
1189 1194
1190 1195
1191 function MakeNewFunctionEvent(func) { 1196 function MakeNewFunctionEvent(func) {
1192 return new NewFunctionEvent(func); 1197 return new NewFunctionEvent(func);
1193 } 1198 }
1194 1199
1195 1200
1196 function NewFunctionEvent(func) { 1201 function NewFunctionEvent(func) {
1197 this.func = func; 1202 this.func = func;
1198 } 1203 }
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
1234 }; 1239 };
1235 1240
1236 1241
1237 ScriptCollectedEvent.prototype.toJSONProtocol = function() { 1242 ScriptCollectedEvent.prototype.toJSONProtocol = function() {
1238 var o = new ProtocolMessage(); 1243 var o = new ProtocolMessage();
1239 o.running = true; 1244 o.running = true;
1240 o.event = "scriptCollected"; 1245 o.event = "scriptCollected";
1241 o.body = {}; 1246 o.body = {};
1242 o.body.script = { id: this.id() }; 1247 o.body.script = { id: this.id() };
1243 return o.toJSONProtocol(); 1248 return o.toJSONProtocol();
1244 } 1249 };
1245 1250
1246 1251
1247 function MakeScriptObject_(script, include_source) { 1252 function MakeScriptObject_(script, include_source) {
1248 var o = { id: script.id(), 1253 var o = { id: script.id(),
1249 name: script.name(), 1254 name: script.name(),
1250 lineOffset: script.lineOffset(), 1255 lineOffset: script.lineOffset(),
1251 columnOffset: script.columnOffset(), 1256 columnOffset: script.columnOffset(),
1252 lineCount: script.lineCount(), 1257 lineCount: script.lineCount(),
1253 }; 1258 };
1254 if (!IS_UNDEFINED(script.data())) { 1259 if (!IS_UNDEFINED(script.data())) {
1255 o.data = script.data(); 1260 o.data = script.data();
1256 } 1261 }
1257 if (include_source) { 1262 if (include_source) {
1258 o.source = script.source(); 1263 o.source = script.source();
1259 } 1264 }
1260 return o; 1265 return o;
1261 }; 1266 }
1262 1267
1263 1268
1264 function DebugCommandProcessor(exec_state, opt_is_running) { 1269 function DebugCommandProcessor(exec_state, opt_is_running) {
1265 this.exec_state_ = exec_state; 1270 this.exec_state_ = exec_state;
1266 this.running_ = opt_is_running || false; 1271 this.running_ = opt_is_running || false;
1267 }; 1272 }
1268 1273
1269 1274
1270 DebugCommandProcessor.prototype.processDebugRequest = function (request) { 1275 DebugCommandProcessor.prototype.processDebugRequest = function (request) {
1271 return this.processDebugJSONRequest(request); 1276 return this.processDebugJSONRequest(request);
1272 } 1277 };
1273 1278
1274 1279
1275 function ProtocolMessage(request) { 1280 function ProtocolMessage(request) {
1276 // Update sequence number. 1281 // Update sequence number.
1277 this.seq = next_response_seq++; 1282 this.seq = next_response_seq++;
1278 1283
1279 if (request) { 1284 if (request) {
1280 // If message is based on a request this is a response. Fill the initial 1285 // If message is based on a request this is a response. Fill the initial
1281 // response from the request. 1286 // response from the request.
1282 this.type = 'response'; 1287 this.type = 'response';
1283 this.request_seq = request.seq; 1288 this.request_seq = request.seq;
1284 this.command = request.command; 1289 this.command = request.command;
1285 } else { 1290 } else {
1286 // If message is not based on a request it is a dabugger generated event. 1291 // If message is not based on a request it is a dabugger generated event.
1287 this.type = 'event'; 1292 this.type = 'event';
1288 } 1293 }
1289 this.success = true; 1294 this.success = true;
1290 // Handler may set this field to control debugger state. 1295 // Handler may set this field to control debugger state.
1291 this.running = undefined; 1296 this.running = undefined;
1292 } 1297 }
1293 1298
1294 1299
1295 ProtocolMessage.prototype.setOption = function(name, value) { 1300 ProtocolMessage.prototype.setOption = function(name, value) {
1296 if (!this.options_) { 1301 if (!this.options_) {
1297 this.options_ = {}; 1302 this.options_ = {};
1298 } 1303 }
1299 this.options_[name] = value; 1304 this.options_[name] = value;
1300 } 1305 };
1301 1306
1302 1307
1303 ProtocolMessage.prototype.failed = function(message) { 1308 ProtocolMessage.prototype.failed = function(message) {
1304 this.success = false; 1309 this.success = false;
1305 this.message = message; 1310 this.message = message;
1306 } 1311 };
1307 1312
1308 1313
1309 ProtocolMessage.prototype.toJSONProtocol = function() { 1314 ProtocolMessage.prototype.toJSONProtocol = function() {
1310 // Encode the protocol header. 1315 // Encode the protocol header.
1311 var json = {}; 1316 var json = {};
1312 json.seq= this.seq; 1317 json.seq= this.seq;
1313 if (this.request_seq) { 1318 if (this.request_seq) {
1314 json.request_seq = this.request_seq; 1319 json.request_seq = this.request_seq;
1315 } 1320 }
1316 json.type = this.type; 1321 json.type = this.type;
(...skipping 27 matching lines...) Expand all
1344 bodyJson = ObjectToProtocolObject_(this.body, serializer); 1349 bodyJson = ObjectToProtocolObject_(this.body, serializer);
1345 } 1350 }
1346 json.body = bodyJson; 1351 json.body = bodyJson;
1347 json.refs = serializer.serializeReferencedObjects(); 1352 json.refs = serializer.serializeReferencedObjects();
1348 } 1353 }
1349 if (this.message) { 1354 if (this.message) {
1350 json.message = this.message; 1355 json.message = this.message;
1351 } 1356 }
1352 json.running = this.running; 1357 json.running = this.running;
1353 return JSON.stringify(json); 1358 return JSON.stringify(json);
1354 } 1359 };
1355 1360
1356 1361
1357 DebugCommandProcessor.prototype.createResponse = function(request) { 1362 DebugCommandProcessor.prototype.createResponse = function(request) {
1358 return new ProtocolMessage(request); 1363 return new ProtocolMessage(request);
1359 }; 1364 };
1360 1365
1361 1366
1362 DebugCommandProcessor.prototype.processDebugJSONRequest = function(json_request) { 1367 DebugCommandProcessor.prototype.processDebugJSONRequest = function(
1368 json_request) {
1363 var request; // Current request. 1369 var request; // Current request.
1364 var response; // Generated response. 1370 var response; // Generated response.
1365 try { 1371 try {
1366 try { 1372 try {
1367 // Convert the JSON string to an object. 1373 // Convert the JSON string to an object.
1368 request = JSON.parse(json_request); 1374 request = JSON.parse(json_request);
1369 1375
1370 // Create an initial response. 1376 // Create an initial response.
1371 response = this.createResponse(request); 1377 response = this.createResponse(request);
1372 1378
(...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after
1639 var break_point = Debug.findBreakPoint(break_point_number); 1645 var break_point = Debug.findBreakPoint(break_point_number);
1640 if (ignoreCount) { 1646 if (ignoreCount) {
1641 Debug.changeBreakPointIgnoreCount(break_point_number, ignoreCount); 1647 Debug.changeBreakPointIgnoreCount(break_point_number, ignoreCount);
1642 } 1648 }
1643 if (!enabled) { 1649 if (!enabled) {
1644 Debug.disableBreakPoint(break_point_number); 1650 Debug.disableBreakPoint(break_point_number);
1645 } 1651 }
1646 1652
1647 // Add the break point number to the response. 1653 // Add the break point number to the response.
1648 response.body = { type: type, 1654 response.body = { type: type,
1649 breakpoint: break_point_number } 1655 breakpoint: break_point_number };
1650 1656
1651 // Add break point information to the response. 1657 // Add break point information to the response.
1652 if (break_point instanceof ScriptBreakPoint) { 1658 if (break_point instanceof ScriptBreakPoint) {
1653 if (break_point.type() == Debug.ScriptBreakPointType.ScriptId) { 1659 if (break_point.type() == Debug.ScriptBreakPointType.ScriptId) {
1654 response.body.type = 'scriptId'; 1660 response.body.type = 'scriptId';
1655 response.body.script_id = break_point.script_id(); 1661 response.body.script_id = break_point.script_id();
1656 } else if (break_point.type() == Debug.ScriptBreakPointType.ScriptName) { 1662 } else if (break_point.type() == Debug.ScriptBreakPointType.ScriptName) {
1657 response.body.type = 'scriptName'; 1663 response.body.type = 'scriptName';
1658 response.body.script_name = break_point.script_name(); 1664 response.body.script_name = break_point.script_name();
1659 } else if (break_point.type() == Debug.ScriptBreakPointType.ScriptRegExp) { 1665 } else if (break_point.type() == Debug.ScriptBreakPointType.ScriptRegExp) {
1660 response.body.type = 'scriptRegExp'; 1666 response.body.type = 'scriptRegExp';
1661 response.body.script_regexp = break_point.script_regexp_object().source; 1667 response.body.script_regexp = break_point.script_regexp_object().source;
1662 } else { 1668 } else {
1663 throw new Error("Internal error: Unexpected breakpoint type: " + break_poi nt.type()); 1669 throw new Error("Internal error: Unexpected breakpoint type: " +
1670 break_point.type());
1664 } 1671 }
1665 response.body.line = break_point.line(); 1672 response.body.line = break_point.line();
1666 response.body.column = break_point.column(); 1673 response.body.column = break_point.column();
1667 response.body.actual_locations = break_point.actual_locations(); 1674 response.body.actual_locations = break_point.actual_locations();
1668 } else { 1675 } else {
1669 response.body.type = 'function'; 1676 response.body.type = 'function';
1670 response.body.actual_locations = [break_point.actual_location]; 1677 response.body.actual_locations = [break_point.actual_location];
1671 } 1678 }
1672 }; 1679 };
1673 1680
1674 1681
1675 DebugCommandProcessor.prototype.changeBreakPointRequest_ = function(request, res ponse) { 1682 DebugCommandProcessor.prototype.changeBreakPointRequest_ = function(
1683 request, response) {
1676 // Check for legal request. 1684 // Check for legal request.
1677 if (!request.arguments) { 1685 if (!request.arguments) {
1678 response.failed('Missing arguments'); 1686 response.failed('Missing arguments');
1679 return; 1687 return;
1680 } 1688 }
1681 1689
1682 // Pull out arguments. 1690 // Pull out arguments.
1683 var break_point = %ToNumber(request.arguments.breakpoint); 1691 var break_point = %ToNumber(request.arguments.breakpoint);
1684 var enabled = request.arguments.enabled; 1692 var enabled = request.arguments.enabled;
1685 var condition = request.arguments.condition; 1693 var condition = request.arguments.condition;
(...skipping 16 matching lines...) Expand all
1702 1710
1703 // Change condition if supplied 1711 // Change condition if supplied
1704 if (!IS_UNDEFINED(condition)) { 1712 if (!IS_UNDEFINED(condition)) {
1705 Debug.changeBreakPointCondition(break_point, condition); 1713 Debug.changeBreakPointCondition(break_point, condition);
1706 } 1714 }
1707 1715
1708 // Change ignore count if supplied 1716 // Change ignore count if supplied
1709 if (!IS_UNDEFINED(ignoreCount)) { 1717 if (!IS_UNDEFINED(ignoreCount)) {
1710 Debug.changeBreakPointIgnoreCount(break_point, ignoreCount); 1718 Debug.changeBreakPointIgnoreCount(break_point, ignoreCount);
1711 } 1719 }
1712 } 1720 };
1713 1721
1714 1722
1715 DebugCommandProcessor.prototype.clearBreakPointGroupRequest_ = function(request, response) { 1723 DebugCommandProcessor.prototype.clearBreakPointGroupRequest_ = function(
1724 request, response) {
1716 // Check for legal request. 1725 // Check for legal request.
1717 if (!request.arguments) { 1726 if (!request.arguments) {
1718 response.failed('Missing arguments'); 1727 response.failed('Missing arguments');
1719 return; 1728 return;
1720 } 1729 }
1721 1730
1722 // Pull out arguments. 1731 // Pull out arguments.
1723 var group_id = request.arguments.groupId; 1732 var group_id = request.arguments.groupId;
1724 1733
1725 // Check for legal arguments. 1734 // Check for legal arguments.
(...skipping 10 matching lines...) Expand all
1736 cleared_break_points.push(next_break_point.number()); 1745 cleared_break_points.push(next_break_point.number());
1737 next_break_point.clear(); 1746 next_break_point.clear();
1738 } else { 1747 } else {
1739 new_script_break_points.push(next_break_point); 1748 new_script_break_points.push(next_break_point);
1740 } 1749 }
1741 } 1750 }
1742 script_break_points = new_script_break_points; 1751 script_break_points = new_script_break_points;
1743 1752
1744 // Add the cleared break point numbers to the response. 1753 // Add the cleared break point numbers to the response.
1745 response.body = { breakpoints: cleared_break_points }; 1754 response.body = { breakpoints: cleared_break_points };
1746 } 1755 };
1747 1756
1748 1757
1749 DebugCommandProcessor.prototype.clearBreakPointRequest_ = function(request, resp onse) { 1758 DebugCommandProcessor.prototype.clearBreakPointRequest_ = function(
1759 request, response) {
1750 // Check for legal request. 1760 // Check for legal request.
1751 if (!request.arguments) { 1761 if (!request.arguments) {
1752 response.failed('Missing arguments'); 1762 response.failed('Missing arguments');
1753 return; 1763 return;
1754 } 1764 }
1755 1765
1756 // Pull out arguments. 1766 // Pull out arguments.
1757 var break_point = %ToNumber(request.arguments.breakpoint); 1767 var break_point = %ToNumber(request.arguments.breakpoint);
1758 1768
1759 // Check for legal arguments. 1769 // Check for legal arguments.
1760 if (!break_point) { 1770 if (!break_point) {
1761 response.failed('Missing argument "breakpoint"'); 1771 response.failed('Missing argument "breakpoint"');
1762 return; 1772 return;
1763 } 1773 }
1764 1774
1765 // Clear break point. 1775 // Clear break point.
1766 Debug.clearBreakPoint(break_point); 1776 Debug.clearBreakPoint(break_point);
1767 1777
1768 // Add the cleared break point number to the response. 1778 // Add the cleared break point number to the response.
1769 response.body = { breakpoint: break_point } 1779 response.body = { breakpoint: break_point };
1770 } 1780 };
1771 1781
1772 1782
1773 DebugCommandProcessor.prototype.listBreakpointsRequest_ = function(request, resp onse) { 1783 DebugCommandProcessor.prototype.listBreakpointsRequest_ = function(
1784 request, response) {
1774 var array = []; 1785 var array = [];
1775 for (var i = 0; i < script_break_points.length; i++) { 1786 for (var i = 0; i < script_break_points.length; i++) {
1776 var break_point = script_break_points[i]; 1787 var break_point = script_break_points[i];
1777 1788
1778 var description = { 1789 var description = {
1779 number: break_point.number(), 1790 number: break_point.number(),
1780 line: break_point.line(), 1791 line: break_point.line(),
1781 column: break_point.column(), 1792 column: break_point.column(),
1782 groupId: break_point.groupId(), 1793 groupId: break_point.groupId(),
1783 hit_count: break_point.hit_count(), 1794 hit_count: break_point.hit_count(),
1784 active: break_point.active(), 1795 active: break_point.active(),
1785 condition: break_point.condition(), 1796 condition: break_point.condition(),
1786 ignoreCount: break_point.ignoreCount(), 1797 ignoreCount: break_point.ignoreCount(),
1787 actual_locations: break_point.actual_locations() 1798 actual_locations: break_point.actual_locations()
1788 } 1799 };
1789 1800
1790 if (break_point.type() == Debug.ScriptBreakPointType.ScriptId) { 1801 if (break_point.type() == Debug.ScriptBreakPointType.ScriptId) {
1791 description.type = 'scriptId'; 1802 description.type = 'scriptId';
1792 description.script_id = break_point.script_id(); 1803 description.script_id = break_point.script_id();
1793 } else if (break_point.type() == Debug.ScriptBreakPointType.ScriptName) { 1804 } else if (break_point.type() == Debug.ScriptBreakPointType.ScriptName) {
1794 description.type = 'scriptName'; 1805 description.type = 'scriptName';
1795 description.script_name = break_point.script_name(); 1806 description.script_name = break_point.script_name();
1796 } else if (break_point.type() == Debug.ScriptBreakPointType.ScriptRegExp) { 1807 } else if (break_point.type() == Debug.ScriptBreakPointType.ScriptRegExp) {
1797 description.type = 'scriptRegExp'; 1808 description.type = 'scriptRegExp';
1798 description.script_regexp = break_point.script_regexp_object().source; 1809 description.script_regexp = break_point.script_regexp_object().source;
1799 } else { 1810 } else {
1800 throw new Error("Internal error: Unexpected breakpoint type: " + break_poi nt.type()); 1811 throw new Error("Internal error: Unexpected breakpoint type: " +
1812 break_point.type());
1801 } 1813 }
1802 array.push(description); 1814 array.push(description);
1803 } 1815 }
1804 1816
1805 response.body = { 1817 response.body = {
1806 breakpoints: array, 1818 breakpoints: array,
1807 breakOnExceptions: Debug.isBreakOnException(), 1819 breakOnExceptions: Debug.isBreakOnException(),
1808 breakOnUncaughtExceptions: Debug.isBreakOnUncaughtException() 1820 breakOnUncaughtExceptions: Debug.isBreakOnUncaughtException()
1809 } 1821 };
1810 } 1822 };
1811 1823
1812 1824
1813 DebugCommandProcessor.prototype.disconnectRequest_ = 1825 DebugCommandProcessor.prototype.disconnectRequest_ =
1814 function(request, response) { 1826 function(request, response) {
1815 Debug.disableAllBreakPoints(); 1827 Debug.disableAllBreakPoints();
1816 this.continueRequest_(request, response); 1828 this.continueRequest_(request, response);
1817 } 1829 };
1818 1830
1819 1831
1820 DebugCommandProcessor.prototype.setExceptionBreakRequest_ = 1832 DebugCommandProcessor.prototype.setExceptionBreakRequest_ =
1821 function(request, response) { 1833 function(request, response) {
1822 // Check for legal request. 1834 // Check for legal request.
1823 if (!request.arguments) { 1835 if (!request.arguments) {
1824 response.failed('Missing arguments'); 1836 response.failed('Missing arguments');
1825 return; 1837 return;
1826 } 1838 }
1827 1839
(...skipping 24 matching lines...) Expand all
1852 if (type == 'all') { 1864 if (type == 'all') {
1853 %ChangeBreakOnException(Debug.ExceptionBreak.Caught, enabled); 1865 %ChangeBreakOnException(Debug.ExceptionBreak.Caught, enabled);
1854 } else if (type == 'uncaught') { 1866 } else if (type == 'uncaught') {
1855 %ChangeBreakOnException(Debug.ExceptionBreak.Uncaught, enabled); 1867 %ChangeBreakOnException(Debug.ExceptionBreak.Uncaught, enabled);
1856 } else { 1868 } else {
1857 response.failed('Unknown "type":"' + type + '"'); 1869 response.failed('Unknown "type":"' + type + '"');
1858 } 1870 }
1859 1871
1860 // Add the cleared break point number to the response. 1872 // Add the cleared break point number to the response.
1861 response.body = { 'type': type, 'enabled': enabled }; 1873 response.body = { 'type': type, 'enabled': enabled };
1862 } 1874 };
1863 1875
1864 1876
1865 DebugCommandProcessor.prototype.backtraceRequest_ = function(request, response) { 1877 DebugCommandProcessor.prototype.backtraceRequest_ = function(
1878 request, response) {
1866 // Get the number of frames. 1879 // Get the number of frames.
1867 var total_frames = this.exec_state_.frameCount(); 1880 var total_frames = this.exec_state_.frameCount();
1868 1881
1869 // Create simple response if there are no frames. 1882 // Create simple response if there are no frames.
1870 if (total_frames == 0) { 1883 if (total_frames == 0) {
1871 response.body = { 1884 response.body = {
1872 totalFrames: total_frames 1885 totalFrames: total_frames
1873 } 1886 };
1874 return; 1887 return;
1875 } 1888 }
1876 1889
1877 // Default frame range to include in backtrace. 1890 // Default frame range to include in backtrace.
1878 var from_index = 0 1891 var from_index = 0;
1879 var to_index = kDefaultBacktraceLength; 1892 var to_index = kDefaultBacktraceLength;
1880 1893
1881 // Get the range from the arguments. 1894 // Get the range from the arguments.
1882 if (request.arguments) { 1895 if (request.arguments) {
1883 if (request.arguments.fromFrame) { 1896 if (request.arguments.fromFrame) {
1884 from_index = request.arguments.fromFrame; 1897 from_index = request.arguments.fromFrame;
1885 } 1898 }
1886 if (request.arguments.toFrame) { 1899 if (request.arguments.toFrame) {
1887 to_index = request.arguments.toFrame; 1900 to_index = request.arguments.toFrame;
1888 } 1901 }
1889 if (request.arguments.bottom) { 1902 if (request.arguments.bottom) {
1890 var tmp_index = total_frames - from_index; 1903 var tmp_index = total_frames - from_index;
1891 from_index = total_frames - to_index 1904 from_index = total_frames - to_index;
1892 to_index = tmp_index; 1905 to_index = tmp_index;
1893 } 1906 }
1894 if (from_index < 0 || to_index < 0) { 1907 if (from_index < 0 || to_index < 0) {
1895 return response.failed('Invalid frame number'); 1908 return response.failed('Invalid frame number');
1896 } 1909 }
1897 } 1910 }
1898 1911
1899 // Adjust the index. 1912 // Adjust the index.
1900 to_index = Math.min(total_frames, to_index); 1913 to_index = Math.min(total_frames, to_index);
1901 1914
1902 if (to_index <= from_index) { 1915 if (to_index <= from_index) {
1903 var error = 'Invalid frame range'; 1916 var error = 'Invalid frame range';
1904 return response.failed(error); 1917 return response.failed(error);
1905 } 1918 }
1906 1919
1907 // Create the response body. 1920 // Create the response body.
1908 var frames = []; 1921 var frames = [];
1909 for (var i = from_index; i < to_index; i++) { 1922 for (var i = from_index; i < to_index; i++) {
1910 frames.push(this.exec_state_.frame(i)); 1923 frames.push(this.exec_state_.frame(i));
1911 } 1924 }
1912 response.body = { 1925 response.body = {
1913 fromFrame: from_index, 1926 fromFrame: from_index,
1914 toFrame: to_index, 1927 toFrame: to_index,
1915 totalFrames: total_frames, 1928 totalFrames: total_frames,
1916 frames: frames 1929 frames: frames
1917 } 1930 };
1918 }; 1931 };
1919 1932
1920 1933
1921 DebugCommandProcessor.prototype.frameRequest_ = function(request, response) { 1934 DebugCommandProcessor.prototype.frameRequest_ = function(request, response) {
1922 // No frames no source. 1935 // No frames no source.
1923 if (this.exec_state_.frameCount() == 0) { 1936 if (this.exec_state_.frameCount() == 0) {
1924 return response.failed('No frames'); 1937 return response.failed('No frames');
1925 } 1938 }
1926 1939
1927 // With no arguments just keep the selected frame. 1940 // With no arguments just keep the selected frame.
1928 if (request.arguments) { 1941 if (request.arguments) {
1929 var index = request.arguments.number; 1942 var index = request.arguments.number;
1930 if (index < 0 || this.exec_state_.frameCount() <= index) { 1943 if (index < 0 || this.exec_state_.frameCount() <= index) {
1931 return response.failed('Invalid frame number'); 1944 return response.failed('Invalid frame number');
1932 } 1945 }
1933 1946
1934 this.exec_state_.setSelectedFrame(request.arguments.number); 1947 this.exec_state_.setSelectedFrame(request.arguments.number);
1935 } 1948 }
1936 response.body = this.exec_state_.frame(); 1949 response.body = this.exec_state_.frame();
1937 }; 1950 };
1938 1951
1939 1952
1940 DebugCommandProcessor.prototype.frameForScopeRequest_ = function(request) { 1953 DebugCommandProcessor.prototype.frameForScopeRequest_ = function(request) {
1941 // Get the frame for which the scope or scopes are requested. With no frameNum ber 1954 // Get the frame for which the scope or scopes are requested.
1942 // argument use the currently selected frame. 1955 // With no frameNumber argument use the currently selected frame.
1943 if (request.arguments && !IS_UNDEFINED(request.arguments.frameNumber)) { 1956 if (request.arguments && !IS_UNDEFINED(request.arguments.frameNumber)) {
1944 frame_index = request.arguments.frameNumber; 1957 frame_index = request.arguments.frameNumber;
1945 if (frame_index < 0 || this.exec_state_.frameCount() <= frame_index) { 1958 if (frame_index < 0 || this.exec_state_.frameCount() <= frame_index) {
1946 return response.failed('Invalid frame number'); 1959 return response.failed('Invalid frame number');
1947 } 1960 }
1948 return this.exec_state_.frame(frame_index); 1961 return this.exec_state_.frame(frame_index);
1949 } else { 1962 } else {
1950 return this.exec_state_.frame(); 1963 return this.exec_state_.frame();
1951 } 1964 }
1952 } 1965 };
1953 1966
1954 1967
1955 DebugCommandProcessor.prototype.scopesRequest_ = function(request, response) { 1968 DebugCommandProcessor.prototype.scopesRequest_ = function(request, response) {
1956 // No frames no scopes. 1969 // No frames no scopes.
1957 if (this.exec_state_.frameCount() == 0) { 1970 if (this.exec_state_.frameCount() == 0) {
1958 return response.failed('No scopes'); 1971 return response.failed('No scopes');
1959 } 1972 }
1960 1973
1961 // Get the frame for which the scopes are requested. 1974 // Get the frame for which the scopes are requested.
1962 var frame = this.frameForScopeRequest_(request); 1975 var frame = this.frameForScopeRequest_(request);
1963 1976
1964 // Fill all scopes for this frame. 1977 // Fill all scopes for this frame.
1965 var total_scopes = frame.scopeCount(); 1978 var total_scopes = frame.scopeCount();
1966 var scopes = []; 1979 var scopes = [];
1967 for (var i = 0; i < total_scopes; i++) { 1980 for (var i = 0; i < total_scopes; i++) {
1968 scopes.push(frame.scope(i)); 1981 scopes.push(frame.scope(i));
1969 } 1982 }
1970 response.body = { 1983 response.body = {
1971 fromScope: 0, 1984 fromScope: 0,
1972 toScope: total_scopes, 1985 toScope: total_scopes,
1973 totalScopes: total_scopes, 1986 totalScopes: total_scopes,
1974 scopes: scopes 1987 scopes: scopes
1975 } 1988 };
1976 }; 1989 };
1977 1990
1978 1991
1979 DebugCommandProcessor.prototype.scopeRequest_ = function(request, response) { 1992 DebugCommandProcessor.prototype.scopeRequest_ = function(request, response) {
1980 // No frames no scopes. 1993 // No frames no scopes.
1981 if (this.exec_state_.frameCount() == 0) { 1994 if (this.exec_state_.frameCount() == 0) {
1982 return response.failed('No scopes'); 1995 return response.failed('No scopes');
1983 } 1996 }
1984 1997
1985 // Get the frame for which the scope is requested. 1998 // Get the frame for which the scope is requested.
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
2210 2223
2211 DebugCommandProcessor.prototype.scriptsRequest_ = function(request, response) { 2224 DebugCommandProcessor.prototype.scriptsRequest_ = function(request, response) {
2212 var types = ScriptTypeFlag(Debug.ScriptType.Normal); 2225 var types = ScriptTypeFlag(Debug.ScriptType.Normal);
2213 var includeSource = false; 2226 var includeSource = false;
2214 var idsToInclude = null; 2227 var idsToInclude = null;
2215 if (request.arguments) { 2228 if (request.arguments) {
2216 // Pull out arguments. 2229 // Pull out arguments.
2217 if (!IS_UNDEFINED(request.arguments.types)) { 2230 if (!IS_UNDEFINED(request.arguments.types)) {
2218 types = %ToNumber(request.arguments.types); 2231 types = %ToNumber(request.arguments.types);
2219 if (isNaN(types) || types < 0) { 2232 if (isNaN(types) || types < 0) {
2220 return response.failed('Invalid types "' + request.arguments.types + '"' ); 2233 return response.failed('Invalid types "' +
2234 request.arguments.types + '"');
2221 } 2235 }
2222 } 2236 }
2223 2237
2224 if (!IS_UNDEFINED(request.arguments.includeSource)) { 2238 if (!IS_UNDEFINED(request.arguments.includeSource)) {
2225 includeSource = %ToBoolean(request.arguments.includeSource); 2239 includeSource = %ToBoolean(request.arguments.includeSource);
2226 response.setOption('includeSource', includeSource); 2240 response.setOption('includeSource', includeSource);
2227 } 2241 }
2228 2242
2229 if (IS_ARRAY(request.arguments.ids)) { 2243 if (IS_ARRAY(request.arguments.ids)) {
2230 idsToInclude = {}; 2244 idsToInclude = {};
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
2279 DebugCommandProcessor.prototype.threadsRequest_ = function(request, response) { 2293 DebugCommandProcessor.prototype.threadsRequest_ = function(request, response) {
2280 // Get the number of threads. 2294 // Get the number of threads.
2281 var total_threads = this.exec_state_.threadCount(); 2295 var total_threads = this.exec_state_.threadCount();
2282 2296
2283 // Get information for all threads. 2297 // Get information for all threads.
2284 var threads = []; 2298 var threads = [];
2285 for (var i = 0; i < total_threads; i++) { 2299 for (var i = 0; i < total_threads; i++) {
2286 var details = %GetThreadDetails(this.exec_state_.break_id, i); 2300 var details = %GetThreadDetails(this.exec_state_.break_id, i);
2287 var thread_info = { current: details[0], 2301 var thread_info = { current: details[0],
2288 id: details[1] 2302 id: details[1]
2289 } 2303 };
2290 threads.push(thread_info); 2304 threads.push(thread_info);
2291 } 2305 }
2292 2306
2293 // Create the response body. 2307 // Create the response body.
2294 response.body = { 2308 response.body = {
2295 totalThreads: total_threads, 2309 totalThreads: total_threads,
2296 threads: threads 2310 threads: threads
2297 } 2311 };
2298 }; 2312 };
2299 2313
2300 2314
2301 DebugCommandProcessor.prototype.suspendRequest_ = function(request, response) { 2315 DebugCommandProcessor.prototype.suspendRequest_ = function(request, response) {
2302 response.running = false; 2316 response.running = false;
2303 }; 2317 };
2304 2318
2305 2319
2306 DebugCommandProcessor.prototype.versionRequest_ = function(request, response) { 2320 DebugCommandProcessor.prototype.versionRequest_ = function(request, response) {
2307 response.body = { 2321 response.body = {
2308 V8Version: %GetV8Version() 2322 V8Version: %GetV8Version()
2309 } 2323 };
2310 }; 2324 };
2311 2325
2312 2326
2313 DebugCommandProcessor.prototype.profileRequest_ = function(request, response) { 2327 DebugCommandProcessor.prototype.profileRequest_ = function(request, response) {
2314 if (request.arguments.command == 'resume') { 2328 if (request.arguments.command == 'resume') {
2315 %ProfilerResume(); 2329 %ProfilerResume();
2316 } else if (request.arguments.command == 'pause') { 2330 } else if (request.arguments.command == 'pause') {
2317 %ProfilerPause(); 2331 %ProfilerPause();
2318 } else { 2332 } else {
2319 return response.failed('Unknown command'); 2333 return response.failed('Unknown command');
2320 } 2334 }
2321 response.body = {}; 2335 response.body = {};
2322 }; 2336 };
2323 2337
2324 2338
2325 DebugCommandProcessor.prototype.changeLiveRequest_ = function(request, response) { 2339 DebugCommandProcessor.prototype.changeLiveRequest_ = function(
2340 request, response) {
2326 if (!Debug.LiveEdit) { 2341 if (!Debug.LiveEdit) {
2327 return response.failed('LiveEdit feature is not supported'); 2342 return response.failed('LiveEdit feature is not supported');
2328 } 2343 }
2329 if (!request.arguments) { 2344 if (!request.arguments) {
2330 return response.failed('Missing arguments'); 2345 return response.failed('Missing arguments');
2331 } 2346 }
2332 var script_id = request.arguments.script_id; 2347 var script_id = request.arguments.script_id;
2333 var preview_only = !!request.arguments.preview_only; 2348 var preview_only = !!request.arguments.preview_only;
2334 2349
2335 var scripts = %DebugGetLoadedScripts(); 2350 var scripts = %DebugGetLoadedScripts();
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
2386 debugger_flag.setValue(flags[i].value); 2401 debugger_flag.setValue(flags[i].value);
2387 } 2402 }
2388 response.body.flags.push({ name: name, value: debugger_flag.getValue() }); 2403 response.body.flags.push({ name: name, value: debugger_flag.getValue() });
2389 } 2404 }
2390 } else { 2405 } else {
2391 for (var name in debugger_flags) { 2406 for (var name in debugger_flags) {
2392 var value = debugger_flags[name].getValue(); 2407 var value = debugger_flags[name].getValue();
2393 response.body.flags.push({ name: name, value: value }); 2408 response.body.flags.push({ name: name, value: value });
2394 } 2409 }
2395 } 2410 }
2396 } 2411 };
2397 2412
2398 2413
2399 DebugCommandProcessor.prototype.v8FlagsRequest_ = function(request, response) { 2414 DebugCommandProcessor.prototype.v8FlagsRequest_ = function(request, response) {
2400 var flags = request.arguments.flags; 2415 var flags = request.arguments.flags;
2401 if (!flags) flags = ''; 2416 if (!flags) flags = '';
2402 %SetFlags(flags); 2417 %SetFlags(flags);
2403 }; 2418 };
2404 2419
2405 2420
2406 DebugCommandProcessor.prototype.gcRequest_ = function(request, response) { 2421 DebugCommandProcessor.prototype.gcRequest_ = function(request, response) {
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
2492 var id = request.arguments.id; 2507 var id = request.arguments.id;
2493 response.body = {}; 2508 response.body = {};
2494 response.body.dump = %PrintLOLObj(id); 2509 response.body.dump = %PrintLOLObj(id);
2495 }; 2510 };
2496 2511
2497 2512
2498 // Check whether the previously processed command caused the VM to become 2513 // Check whether the previously processed command caused the VM to become
2499 // running. 2514 // running.
2500 DebugCommandProcessor.prototype.isRunning = function() { 2515 DebugCommandProcessor.prototype.isRunning = function() {
2501 return this.running_; 2516 return this.running_;
2502 } 2517 };
2503 2518
2504 2519
2505 DebugCommandProcessor.prototype.systemBreak = function(cmd, args) { 2520 DebugCommandProcessor.prototype.systemBreak = function(cmd, args) {
2506 return %SystemBreak(); 2521 return %SystemBreak();
2507 }; 2522 };
2508 2523
2509 2524
2510 function NumberToHex8Str(n) { 2525 function NumberToHex8Str(n) {
2511 var r = ""; 2526 var r = "";
2512 for (var i = 0; i < 8; ++i) { 2527 for (var i = 0; i < 8; ++i) {
2513 var c = hexCharArray[n & 0x0F]; // hexCharArray is defined in uri.js 2528 var c = hexCharArray[n & 0x0F]; // hexCharArray is defined in uri.js
2514 r = c + r; 2529 r = c + r;
2515 n = n >>> 4; 2530 n = n >>> 4;
2516 } 2531 }
2517 return r; 2532 return r;
2518 }; 2533 }
2519 2534
2520 2535
2521 /** 2536 /**
2522 * Convert an Object to its debugger protocol representation. The representation 2537 * Convert an Object to its debugger protocol representation. The representation
2523 * may be serilized to a JSON object using JSON.stringify(). 2538 * may be serilized to a JSON object using JSON.stringify().
2524 * This implementation simply runs through all string property names, converts 2539 * This implementation simply runs through all string property names, converts
2525 * each property value to a protocol value and adds the property to the result 2540 * each property value to a protocol value and adds the property to the result
2526 * object. For type "object" the function will be called recursively. Note that 2541 * object. For type "object" the function will be called recursively. Note that
2527 * circular structures will cause infinite recursion. 2542 * circular structures will cause infinite recursion.
2528 * @param {Object} object The object to format as protocol object. 2543 * @param {Object} object The object to format as protocol object.
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
2584 json = ArrayToProtocolArray_(value, mirror_serializer); 2599 json = ArrayToProtocolArray_(value, mirror_serializer);
2585 } else { 2600 } else {
2586 json = ObjectToProtocolObject_(value, mirror_serializer); 2601 json = ObjectToProtocolObject_(value, mirror_serializer);
2587 } 2602 }
2588 break; 2603 break;
2589 2604
2590 case 'boolean': 2605 case 'boolean':
2591 case 'string': 2606 case 'string':
2592 case 'number': 2607 case 'number':
2593 json = value; 2608 json = value;
2594 break 2609 break;
2595 2610
2596 default: 2611 default:
2597 json = null; 2612 json = null;
2598 } 2613 }
2599 return json; 2614 return json;
2600 } 2615 }
OLDNEW
« no previous file with comments | « src/date.js ('k') | src/json.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698