OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
134 } | 134 } |
135 | 135 |
136 /** | 136 /** |
137 * @param {string|undefined} contextData | 137 * @param {string|undefined} contextData |
138 * @return {number} | 138 * @return {number} |
139 */ | 139 */ |
140 DebuggerScript._executionContextId = function(contextData) | 140 DebuggerScript._executionContextId = function(contextData) |
141 { | 141 { |
142 if (!contextData) | 142 if (!contextData) |
143 return 0; | 143 return 0; |
144 var firstComma = contextData.indexOf(","); | 144 var match = contextData.match(/^[^,]*,([^,]*),.*$/); |
145 if (firstComma === -1) | 145 if (!match) |
146 return 0; | 146 return 0; |
147 var secondComma = contextData.indexOf(",", firstComma + 1); | 147 return parseInt(match[1], 10) || 0; |
148 if (secondComma === -1) | |
149 return 0; | |
150 | |
151 return parseInt(contextData.substring(firstComma + 1, secondComma), 10) || 0
; | |
152 } | 148 } |
153 | 149 |
154 /** | 150 /** |
| 151 * @param {string|undefined} contextData |
| 152 * @return {string} |
| 153 */ |
| 154 DebuggerScript._executionContextAuxData = function(contextData) |
| 155 { |
| 156 if (!contextData) |
| 157 return ""; |
| 158 var match = contextData.match(/^[^,]*,[^,]*,(.*)$/); |
| 159 return match ? match[1] : ""; |
| 160 } |
| 161 |
| 162 /** |
155 * @param {string} contextGroupId | 163 * @param {string} contextGroupId |
156 * @return {!Array<!FormattedScript>} | 164 * @return {!Array<!FormattedScript>} |
157 */ | 165 */ |
158 DebuggerScript.getScripts = function(contextGroupId) | 166 DebuggerScript.getScripts = function(contextGroupId) |
159 { | 167 { |
160 var result = []; | 168 var result = []; |
161 var scripts = Debug.scripts(); | 169 var scripts = Debug.scripts(); |
162 var contextDataPrefix = null; | 170 var contextDataPrefix = null; |
163 if (contextGroupId) | 171 if (contextGroupId) |
164 contextDataPrefix = contextGroupId + ","; | 172 contextDataPrefix = contextGroupId + ","; |
165 for (var i = 0; i < scripts.length; ++i) { | 173 for (var i = 0; i < scripts.length; ++i) { |
166 var script = scripts[i]; | 174 var script = scripts[i]; |
167 if (contextDataPrefix) { | 175 if (contextDataPrefix) { |
168 if (!script.context_data) | 176 if (!script.context_data) |
169 continue; | 177 continue; |
170 // Context data is a string in the following format: | 178 // Context data is a string in the following format: |
171 // <contextGroupId>,<contextId>,("default"|"nondefault") | 179 // <contextGroupId>,<contextId>,<auxData> |
172 if (script.context_data.indexOf(contextDataPrefix) !== 0) | 180 if (script.context_data.indexOf(contextDataPrefix) !== 0) |
173 continue; | 181 continue; |
174 } | 182 } |
175 result.push(DebuggerScript._formatScript(script)); | 183 result.push(DebuggerScript._formatScript(script)); |
176 } | 184 } |
177 return result; | 185 return result; |
178 } | 186 } |
179 | 187 |
180 /** | 188 /** |
181 * @param {!Script} script | 189 * @param {!Script} script |
(...skipping 19 matching lines...) Expand all Loading... |
201 id: script.id, | 209 id: script.id, |
202 name: script.nameOrSourceURL(), | 210 name: script.nameOrSourceURL(), |
203 sourceURL: script.source_url, | 211 sourceURL: script.source_url, |
204 sourceMappingURL: script.source_mapping_url, | 212 sourceMappingURL: script.source_mapping_url, |
205 source: script.source, | 213 source: script.source, |
206 startLine: script.line_offset, | 214 startLine: script.line_offset, |
207 startColumn: script.column_offset, | 215 startColumn: script.column_offset, |
208 endLine: endLine, | 216 endLine: endLine, |
209 endColumn: endColumn, | 217 endColumn: endColumn, |
210 executionContextId: DebuggerScript._executionContextId(script.context_da
ta), | 218 executionContextId: DebuggerScript._executionContextId(script.context_da
ta), |
211 isContentScript: !!script.context_data && script.context_data.endsWith("
,nondefault"), | 219 // Note that we cannot derive aux data from context id because of compil
ation cache. |
| 220 executionContextAuxData: DebuggerScript._executionContextAuxData(script.
context_data), |
212 isInternalScript: script.is_debugger_script | 221 isInternalScript: script.is_debugger_script |
213 }; | 222 }; |
214 } | 223 } |
215 | 224 |
216 /** | 225 /** |
217 * @param {!ExecutionState} execState | 226 * @param {!ExecutionState} execState |
218 * @param {!BreakpointInfo} info | 227 * @param {!BreakpointInfo} info |
219 * @return {string|undefined} | 228 * @return {string|undefined} |
220 */ | 229 */ |
221 DebuggerScript.setBreakpoint = function(execState, info) | 230 DebuggerScript.setBreakpoint = function(execState, info) |
(...skipping 469 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
691 break; | 700 break; |
692 } | 701 } |
693 return result; | 702 return result; |
694 } | 703 } |
695 | 704 |
696 // We never resolve Mirror by its handle so to avoid memory leaks caused by Mirr
ors in the cache we disable it. | 705 // We never resolve Mirror by its handle so to avoid memory leaks caused by Mirr
ors in the cache we disable it. |
697 ToggleMirrorCache(false); | 706 ToggleMirrorCache(false); |
698 | 707 |
699 return DebuggerScript; | 708 return DebuggerScript; |
700 })(); | 709 })(); |
OLD | NEW |