OLD | NEW |
1 // Copyright 2008 the V8 project authors. All rights reserved. | 1 // Copyright 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 |
11 // with the distribution. | 11 // with the distribution. |
12 // * Neither the name of Google Inc. nor the names of its | 12 // * Neither the name of Google Inc. nor the names of its |
13 // contributors may be used to endorse or promote products derived | 13 // contributors may be used to endorse or promote products derived |
14 // from this software without specific prior written permission. | 14 // from this software without specific prior written permission. |
15 // | 15 // |
16 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | 16 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
17 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | 17 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
18 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | 18 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
19 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | 19 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
20 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | 20 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
21 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | 21 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
22 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 22 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
23 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 23 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
24 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 24 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
25 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 25 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
26 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 26 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
27 | 27 |
| 28 "use strict"; |
| 29 |
28 String.prototype.startsWith = function (str) { | 30 String.prototype.startsWith = function (str) { |
29 if (str.length > this.length) { | 31 if (str.length > this.length) { |
30 return false; | 32 return false; |
31 } | 33 } |
32 return this.substr(0, str.length) == str; | 34 return this.substr(0, str.length) == str; |
33 }; | 35 }; |
34 | 36 |
35 function log10(num) { | 37 function log10(num) { |
36 return Math.log(num)/Math.log(10); | 38 return Math.log(num)/Math.log(10); |
37 } | 39 } |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
69 result.push(name); | 71 result.push(name); |
70 } | 72 } |
71 } | 73 } |
72 current = ToInspectableObject(current.__proto__); | 74 current = ToInspectableObject(current.__proto__); |
73 } | 75 } |
74 return result; | 76 return result; |
75 } | 77 } |
76 | 78 |
77 | 79 |
78 // Global object holding debugger related constants and state. | 80 // Global object holding debugger related constants and state. |
79 const Debug = {}; | 81 var Debug = {}; |
80 | 82 |
81 | 83 |
82 // Debug events which can occour in the V8 JavaScript engine. These originate | 84 // Debug events which can occour in the V8 JavaScript engine. These originate |
83 // from the API include file v8-debug.h. | 85 // from the API include file v8-debug.h. |
84 Debug.DebugEvent = { Break: 1, | 86 Debug.DebugEvent = { Break: 1, |
85 Exception: 2, | 87 Exception: 2, |
86 NewFunction: 3, | 88 NewFunction: 3, |
87 BeforeCompile: 4, | 89 BeforeCompile: 4, |
88 AfterCompile: 5 }; | 90 AfterCompile: 5 }; |
89 | 91 |
(...skipping 14 matching lines...) Expand all Loading... |
104 // The different types of scopes matching constants runtime.cc. | 106 // The different types of scopes matching constants runtime.cc. |
105 Debug.ScopeType = { Global: 0, | 107 Debug.ScopeType = { Global: 0, |
106 Local: 1, | 108 Local: 1, |
107 With: 2, | 109 With: 2, |
108 Closure: 3, | 110 Closure: 3, |
109 Catch: 4, | 111 Catch: 4, |
110 Block: 5 }; | 112 Block: 5 }; |
111 | 113 |
112 | 114 |
113 // Current debug state. | 115 // Current debug state. |
114 const kNoFrame = -1; | 116 var kNoFrame = -1; |
115 Debug.State = { | 117 Debug.State = { |
116 currentFrame: kNoFrame, | 118 currentFrame: kNoFrame, |
117 displaySourceStartLine: -1, | 119 displaySourceStartLine: -1, |
118 displaySourceEndLine: -1, | 120 displaySourceEndLine: -1, |
119 currentSourceLine: -1 | 121 currentSourceLine: -1 |
120 }; | 122 }; |
121 var trace_compile = false; // Tracing all compile events? | 123 var trace_compile = false; // Tracing all compile events? |
122 var trace_debug_json = false; // Tracing all debug json packets? | 124 var trace_debug_json = false; // Tracing all debug json packets? |
123 var last_cmd_line = ''; | 125 var last_cmd_line = ''; |
124 //var lol_is_enabled; // Set to true in d8.cc if LIVE_OBJECT_LIST is defined. | 126 //var lol_is_enabled; // Set to true in d8.cc if LIVE_OBJECT_LIST is defined. |
125 var lol_next_dump_index = 0; | 127 var lol_next_dump_index = 0; |
126 const kDefaultLolLinesToPrintAtATime = 10; | 128 var kDefaultLolLinesToPrintAtATime = 10; |
127 const kMaxLolLinesToPrintAtATime = 1000; | 129 var kMaxLolLinesToPrintAtATime = 1000; |
128 var repeat_cmd_line = ''; | 130 var repeat_cmd_line = ''; |
129 var is_running = true; | 131 var is_running = true; |
130 | 132 |
131 // Copied from debug-delay.js. This is needed below: | 133 // Copied from debug-delay.js. This is needed below: |
132 function ScriptTypeFlag(type) { | 134 function ScriptTypeFlag(type) { |
133 return (1 << type); | 135 return (1 << type); |
134 } | 136 } |
135 | 137 |
136 | 138 |
137 // Process a debugger JSON message into a display text and a running status. | 139 // Process a debugger JSON message into a display text and a running status. |
(...skipping 2484 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2622 } | 2624 } |
2623 | 2625 |
2624 | 2626 |
2625 function NumberToJSON_(value) { | 2627 function NumberToJSON_(value) { |
2626 return String(value); | 2628 return String(value); |
2627 } | 2629 } |
2628 | 2630 |
2629 | 2631 |
2630 // Mapping of some control characters to avoid the \uXXXX syntax for most | 2632 // Mapping of some control characters to avoid the \uXXXX syntax for most |
2631 // commonly used control cahracters. | 2633 // commonly used control cahracters. |
2632 const ctrlCharMap_ = { | 2634 var ctrlCharMap_ = { |
2633 '\b': '\\b', | 2635 '\b': '\\b', |
2634 '\t': '\\t', | 2636 '\t': '\\t', |
2635 '\n': '\\n', | 2637 '\n': '\\n', |
2636 '\f': '\\f', | 2638 '\f': '\\f', |
2637 '\r': '\\r', | 2639 '\r': '\\r', |
2638 '"' : '\\"', | 2640 '"' : '\\"', |
2639 '\\': '\\\\' | 2641 '\\': '\\\\' |
2640 }; | 2642 }; |
2641 | 2643 |
2642 | 2644 |
2643 // Regular expression testing for ", \ and control characters (0x00 - 0x1F). | 2645 // Regular expression testing for ", \ and control characters (0x00 - 0x1F). |
2644 const ctrlCharTest_ = new RegExp('["\\\\\x00-\x1F]'); | 2646 var ctrlCharTest_ = new RegExp('["\\\\\x00-\x1F]'); |
2645 | 2647 |
2646 | 2648 |
2647 // Regular expression matching ", \ and control characters (0x00 - 0x1F) | 2649 // Regular expression matching ", \ and control characters (0x00 - 0x1F) |
2648 // globally. | 2650 // globally. |
2649 const ctrlCharMatch_ = new RegExp('["\\\\\x00-\x1F]', 'g'); | 2651 var ctrlCharMatch_ = new RegExp('["\\\\\x00-\x1F]', 'g'); |
2650 | 2652 |
2651 | 2653 |
2652 /** | 2654 /** |
2653 * Convert a String to its JSON representation (see http://www.json.org/). To | 2655 * Convert a String to its JSON representation (see http://www.json.org/). To |
2654 * avoid depending on the String object this method calls the functions in | 2656 * avoid depending on the String object this method calls the functions in |
2655 * string.js directly and not through the value. | 2657 * string.js directly and not through the value. |
2656 * @param {String} value The String value to format as JSON | 2658 * @param {String} value The String value to format as JSON |
2657 * @return {string} JSON formatted String value | 2659 * @return {string} JSON formatted String value |
2658 */ | 2660 */ |
2659 function StringToJSON_(value) { | 2661 function StringToJSON_(value) { |
(...skipping 21 matching lines...) Expand all Loading... |
2681 | 2683 |
2682 | 2684 |
2683 /** | 2685 /** |
2684 * Convert a Date to ISO 8601 format. To avoid depending on the Date object | 2686 * Convert a Date to ISO 8601 format. To avoid depending on the Date object |
2685 * this method calls the functions in date.js directly and not through the | 2687 * this method calls the functions in date.js directly and not through the |
2686 * value. | 2688 * value. |
2687 * @param {Date} value The Date value to format as JSON | 2689 * @param {Date} value The Date value to format as JSON |
2688 * @return {string} JSON formatted Date value | 2690 * @return {string} JSON formatted Date value |
2689 */ | 2691 */ |
2690 function DateToISO8601_(value) { | 2692 function DateToISO8601_(value) { |
2691 function f(n) { | 2693 var f = function(n) { |
2692 return n < 10 ? '0' + n : n; | 2694 return n < 10 ? '0' + n : n; |
2693 } | 2695 }; |
2694 function g(n) { | 2696 var g = function(n) { |
2695 return n < 10 ? '00' + n : n < 100 ? '0' + n : n; | 2697 return n < 10 ? '00' + n : n < 100 ? '0' + n : n; |
2696 } | 2698 }; |
2697 return builtins.GetUTCFullYearFrom(value) + '-' + | 2699 return builtins.GetUTCFullYearFrom(value) + '-' + |
2698 f(builtins.GetUTCMonthFrom(value) + 1) + '-' + | 2700 f(builtins.GetUTCMonthFrom(value) + 1) + '-' + |
2699 f(builtins.GetUTCDateFrom(value)) + 'T' + | 2701 f(builtins.GetUTCDateFrom(value)) + 'T' + |
2700 f(builtins.GetUTCHoursFrom(value)) + ':' + | 2702 f(builtins.GetUTCHoursFrom(value)) + ':' + |
2701 f(builtins.GetUTCMinutesFrom(value)) + ':' + | 2703 f(builtins.GetUTCMinutesFrom(value)) + ':' + |
2702 f(builtins.GetUTCSecondsFrom(value)) + '.' + | 2704 f(builtins.GetUTCSecondsFrom(value)) + '.' + |
2703 g(builtins.GetUTCMillisecondsFrom(value)) + 'Z'; | 2705 g(builtins.GetUTCMillisecondsFrom(value)) + 'Z'; |
2704 } | 2706 } |
2705 | 2707 |
2706 | 2708 |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2801 json += NumberToJSON_(elem); | 2803 json += NumberToJSON_(elem); |
2802 } else if (typeof(elem) === 'string') { | 2804 } else if (typeof(elem) === 'string') { |
2803 json += StringToJSON_(elem); | 2805 json += StringToJSON_(elem); |
2804 } else { | 2806 } else { |
2805 json += elem; | 2807 json += elem; |
2806 } | 2808 } |
2807 } | 2809 } |
2808 json += ']'; | 2810 json += ']'; |
2809 return json; | 2811 return json; |
2810 } | 2812 } |
OLD | NEW |