Chromium Code Reviews| Index: lib/src/script.dart |
| diff --git a/lib/src/script.dart b/lib/src/script.dart |
| index 12f4bfac80501fc627b615daf269d62a326cca5d..bc8f5a68dd9d819ea953989910b69ef8f46e63e0 100644 |
| --- a/lib/src/script.dart |
| +++ b/lib/src/script.dart |
| @@ -14,6 +14,7 @@ import 'library.dart'; |
| import 'object.dart'; |
| import 'scope.dart'; |
| import 'source_location.dart'; |
| +import 'source_report.dart'; |
| VMScriptRef newVMScriptRef(Scope scope, Map json) { |
| if (json == null) return null; |
| @@ -68,6 +69,53 @@ class VMScriptRef implements VMObjectRef { |
| } |
| } |
| + /// Generates a set of reports tied to this script. |
| + /// |
| + /// Set [includeCoverageReport] to `true` to include code coverage |
| + /// information. |
| + /// |
| + /// Set [includePossibleBreakpoints] to `true` to provide a list of token |
| + /// positions which correspond to possible breakpoints. |
| + /// |
| + /// Either or both of the [tokenPos] and [endTokenPos] parameters may be |
| + /// provided to restrict the analysis to a subrange of a script |
| + /// (for example, these can be used to restrict the report to the range of a |
| + /// particular class or function). |
| + /// |
| + /// Set [forceCompilation] to `true` to force compilation of all functions in |
| + /// the range of the report. |
| + /// Forcing compilation can cause a compilation error, which could terminate |
| + /// the running Dart program. |
| + Future<VMSourceReport> getSourceReport( |
| + {bool includeCoverageReport, |
| + bool includePossibleBreakpoints, |
| + int tokenPos, |
| + int endTokenPos, |
|
nweiz
2016/04/29 00:52:43
These should come after [forceCompile]. That way t
kevmoo
2016/04/29 23:36:54
Done
nweiz
2016/05/04 23:05:51
I don't understand how users would possibly get in
kevmoo
2016/05/05 20:46:25
This was fixed – now uses tokens
nweiz
2016/05/11 23:03:30
What I'm saying is that it should take a single So
kevmoo
2016/05/12 05:22:34
But one cannot create a SourceLocation from whole
nweiz
2016/05/17 20:54:41
That is not a use-case I'm concerned about.
I'm t
kevmoo
2016/05/17 22:12:01
Acknowledged.
|
| + bool forceCompile}) async { |
| + var reports = <String>[]; |
| + if (includeCoverageReport == true) { |
| + reports.add('Coverage'); |
| + } |
| + |
| + if (includePossibleBreakpoints == true) { |
| + reports.add('PossibleBreakpoints'); |
| + } |
| + |
| + var params = <String, dynamic>{'reports': reports, 'scriptId': _id}; |
| + |
| + if (tokenPos != null) { |
| + params['tokenPos'] = tokenPos; |
| + } |
| + |
| + if (endTokenPos != null) { |
| + params['endTokenPos'] = endTokenPos; |
| + } |
| + |
| + var json = await _scope.sendRequest('getSourceReport', params); |
| + |
| + return newSourceReport(_scope, json); |
| + } |
|
nweiz
2016/04/29 00:52:43
Most of the same comments for the other method app
kevmoo
2016/04/29 23:36:54
Acknowledged.
|
| + |
| bool operator ==(other) => other is VMScriptRef && |
| (_fixedId ? _id == other._id : super == other); |