Index: runtime/observatory/lib/src/service/object.dart |
diff --git a/runtime/observatory/lib/src/service/object.dart b/runtime/observatory/lib/src/service/object.dart |
index 8a7f92cc06513bf69d89aa8d792f1724a09d3983..6ead6a02c036d87bf655a367de90f95ebd44d53b 100644 |
--- a/runtime/observatory/lib/src/service/object.dart |
+++ b/runtime/observatory/lib/src/service/object.dart |
@@ -31,22 +31,22 @@ abstract class RpcException implements Exception, M.BasicException { |
/// A ServerRpcException represents an error returned by the VM. |
class ServerRpcException extends RpcException implements M.RequestException { |
/// A list of well-known server error codes. |
- static const kParseError = -32700; |
+ static const kParseError = -32700; |
static const kInvalidRequest = -32600; |
static const kMethodNotFound = -32601; |
- static const kInvalidParams = -32602; |
- static const kInternalError = -32603; |
- static const kFeatureDisabled = 100; |
- static const kCannotAddBreakpoint = 102; |
+ static const kInvalidParams = -32602; |
+ static const kInternalError = -32603; |
+ static const kFeatureDisabled = 100; |
+ static const kCannotAddBreakpoint = 102; |
static const kStreamAlreadySubscribed = 103; |
- static const kStreamNotSubscribed = 104; |
- static const kIsolateMustBeRunnable = 105; |
- static const kIsolateMustBePaused = 106; |
- static const kIsolateIsReloading = 1000; |
+ static const kStreamNotSubscribed = 104; |
+ static const kIsolateMustBeRunnable = 105; |
+ static const kIsolateMustBePaused = 106; |
+ static const kIsolateIsReloading = 1000; |
static const kFileSystemAlreadyExists = 1001; |
- static const kFileSystemDoesNotExist = 1002; |
- static const kFileDoesNotExist = 1003; |
- static const kIsolateReloadFailed = 1004; |
+ static const kFileSystemDoesNotExist = 1002; |
+ static const kFileDoesNotExist = 1003; |
+ static const kIsolateReloadFailed = 1004; |
int code; |
Map data; |
@@ -71,15 +71,14 @@ class ServerRpcException extends RpcException implements M.RequestException { |
/// A NetworkRpcException is used to indicate that an rpc has |
/// been canceled due to network error. |
class NetworkRpcException extends RpcException |
- implements M.ConnectionException { |
+ implements M.ConnectionException { |
NetworkRpcException(String message) : super(message); |
String toString() => 'NetworkRpcException(${message})'; |
} |
class MalformedResponseRpcException extends RpcException { |
- MalformedResponseRpcException(String message, this.response) |
- : super(message); |
+ MalformedResponseRpcException(String message, this.response) : super(message); |
Map response; |
@@ -174,8 +173,7 @@ abstract class ServiceObject { |
ServiceObject._empty(this._owner); |
/// Creates a [ServiceObject] initialized from [map]. |
- factory ServiceObject._fromMap(ServiceObjectOwner owner, |
- Map map) { |
+ factory ServiceObject._fromMap(ServiceObjectOwner owner, Map map) { |
if (map == null) { |
return null; |
} |
@@ -334,7 +332,6 @@ abstract class ServiceObject { |
update(map); |
completer.complete(this); |
} |
- |
}).catchError((e, st) { |
Logger.root.severe("Unable to reload object: $e\n$st"); |
_inProgressReload = null; |
@@ -436,8 +433,8 @@ abstract class Location implements M.Location { |
} |
/// A [SourceLocation] represents a location or range in the source code. |
-class SourceLocation extends ServiceObject implements Location, |
- M.SourceLocation { |
+class SourceLocation extends ServiceObject |
+ implements Location, M.SourceLocation { |
Script script; |
int tokenPos; |
int endTokenPos; |
@@ -482,8 +479,7 @@ class SourceLocation extends ServiceObject implements Location, |
/// An [UnresolvedSourceLocation] represents a location in the source |
// code which has not been precisely mapped to a token position. |
class UnresolvedSourceLocation extends ServiceObject |
- implements Location, |
- M.UnresolvedSourceLocation { |
+ implements Location, M.UnresolvedSourceLocation { |
Script script; |
String scriptUri; |
int line; |
@@ -599,20 +595,20 @@ class _EventStreamState { |
Future<Stream> addStream() async { |
var controller; |
- controller = new StreamController( |
- onCancel:() => _cancelController(controller)); |
+ controller = |
+ new StreamController(onCancel: () => _cancelController(controller)); |
_controllers.add(controller); |
if (_cancelFuture != null) { |
try { |
await _cancelFuture; |
- } on NetworkRpcException catch (_) { /* ignore */ } |
+ } on NetworkRpcException catch (_) {/* ignore */} |
} |
if (_listenFuture == null) { |
_listenFuture = _vm._streamListen(streamId); |
} |
try { |
await _listenFuture; |
- } on NetworkRpcException catch (_) { /* ignore */ } |
+ } on NetworkRpcException catch (_) {/* ignore */} |
return controller.stream; |
} |
@@ -636,8 +632,8 @@ abstract class VM extends ServiceObjectOwner implements M.VM { |
bool verbose = false; |
// TODO(johnmccutchan): Ensure that isolates do not end up in _cache. |
- Map<String,ServiceObject> _cache = new Map<String,ServiceObject>(); |
- final Map<String,Isolate> _isolateCache = <String,Isolate>{}; |
+ Map<String, ServiceObject> _cache = new Map<String, ServiceObject>(); |
+ final Map<String, Isolate> _isolateCache = <String, Isolate>{}; |
// The list of live isolates, ordered by isolate start time. |
final List<Isolate> isolates = <Isolate>[]; |
@@ -661,7 +657,7 @@ abstract class VM extends ServiceObjectOwner implements M.VM { |
} |
VM() : super._empty(null) { |
- update({'name':'vm', 'type':'@VM'}); |
+ update({'name': 'vm', 'type': '@VM'}); |
} |
void postServiceEvent(String streamId, Map response, ByteData data) { |
@@ -671,8 +667,7 @@ abstract class VM extends ServiceObjectOwner implements M.VM { |
map['_data'] = data; |
} |
if (map['type'] != 'Event') { |
- Logger.root.severe( |
- "Expected 'Event' but found '${map['type']}'"); |
+ Logger.root.severe("Expected 'Event' but found '${map['type']}'"); |
return; |
} |
@@ -796,13 +791,12 @@ abstract class VM extends ServiceObjectOwner implements M.VM { |
return invokeRpcRaw(method, params).then((Map response) { |
var map = response; |
if (Tracer.current != null) { |
- Tracer.current.trace("Received response for ${method}/${params}}", |
- map:map); |
+ Tracer.current |
+ .trace("Received response for ${method}/${params}}", map: map); |
} |
if (!_isServiceMap(map)) { |
- var exception = |
- new MalformedResponseRpcException( |
- "Response is missing the 'type' field", map); |
+ var exception = new MalformedResponseRpcException( |
+ "Response is missing the 'type' field", map); |
return new Future.error(exception); |
} |
return new Future.value(map); |
@@ -855,7 +849,7 @@ abstract class VM extends ServiceObjectOwner implements M.VM { |
} |
Future setName(String newName) { |
- return invokeRpc('setVMName', { 'name': newName }); |
+ return invokeRpc('setVMName', {'name': newName}); |
} |
Future<ServiceObject> getFlagList() { |
@@ -887,7 +881,7 @@ abstract class VM extends ServiceObjectOwner implements M.VM { |
} |
// A map from stream id to event stream state. |
- Map<String,_EventStreamState> _eventStreams = {}; |
+ Map<String, _EventStreamState> _eventStreams = {}; |
// Well-known stream ids. |
static const kVMStream = 'VM'; |
@@ -902,23 +896,26 @@ abstract class VM extends ServiceObjectOwner implements M.VM { |
/// Returns a single-subscription Stream object for a VM event stream. |
Future<Stream> getEventStream(String streamId) async { |
var eventStream = _eventStreams.putIfAbsent( |
- streamId, () => new _EventStreamState( |
+ streamId, |
+ () => new _EventStreamState( |
this, streamId, () => _eventStreams.remove(streamId))); |
Stream stream = await eventStream.addStream(); |
return stream; |
} |
/// Helper function for listening to an event stream. |
- Future<StreamSubscription> listenEventStream(String streamId, |
- Function function) async { |
+ Future<StreamSubscription> listenEventStream( |
+ String streamId, Function function) async { |
var stream = await getEventStream(streamId); |
return stream.listen(function); |
} |
/// Force the VM to disconnect. |
void disconnect(); |
+ |
/// Completes when the VM first connects. |
Future get onConnect; |
+ |
/// Completes when the VM disconnects or there was an error connecting. |
Future get onDisconnect; |
@@ -1009,6 +1006,7 @@ class FakeVM extends VM { |
_onConnect = new Future.value(this); |
return _onConnect; |
} |
+ |
bool get isConnected => !isDisconnected; |
// Only complete when requested. |
Completer _onDisconnect = new Completer(); |
@@ -1029,7 +1027,6 @@ class FakeVM extends VM { |
} |
} |
- |
/// Snapshot in time of tag counters. |
class TagProfileSnapshot { |
final double seconds; |
@@ -1117,8 +1114,8 @@ class InboundReferences implements M.InboundReferences { |
final Iterable<InboundReference> elements; |
InboundReferences(ServiceMap map) |
- : this.elements = map['references'] |
- .map((rmap) => new InboundReference(rmap)); |
+ : this.elements = |
+ map['references'].map((rmap) => new InboundReference(rmap)); |
} |
class InboundReference implements M.InboundReference { |
@@ -1128,18 +1125,18 @@ class InboundReference implements M.InboundReference { |
final int parentWordOffset; |
InboundReference(ServiceMap map) |
- : source = map['source'], |
- parentField = map['parentField'], |
- parentListIndex = map['parentListIndex'], |
- parentWordOffset = map['_parentWordOffset']; |
+ : source = map['source'], |
+ parentField = map['parentField'], |
+ parentListIndex = map['parentListIndex'], |
+ parentWordOffset = map['_parentWordOffset']; |
} |
class RetainingPath implements M.RetainingPath { |
final Iterable<RetainingPathItem> elements; |
RetainingPath(ServiceMap map) |
- : this.elements = map['elements'] |
- .map((rmap) => new RetainingPathItem(rmap)); |
+ : this.elements = |
+ map['elements'].map((rmap) => new RetainingPathItem(rmap)); |
} |
class RetainingPathItem implements M.RetainingPathItem { |
@@ -1149,18 +1146,17 @@ class RetainingPathItem implements M.RetainingPathItem { |
final int parentWordOffset; |
RetainingPathItem(ServiceMap map) |
- : source = map['value'], |
- parentField = map['parentField'], |
- parentListIndex = map['parentListIndex'], |
- parentWordOffset = map['_parentWordOffset']; |
+ : source = map['value'], |
+ parentField = map['parentField'], |
+ parentListIndex = map['parentListIndex'], |
+ parentWordOffset = map['_parentWordOffset']; |
} |
class Ports implements M.Ports { |
final Iterable<Port> elements; |
Ports(ServiceMap map) |
- : this.elements = map['ports'] |
- .map((rmap) => new Port(rmap)); |
+ : this.elements = map['ports'].map((rmap) => new Port(rmap)); |
} |
class Port implements M.Port { |
@@ -1168,8 +1164,8 @@ class Port implements M.Port { |
final HeapObject handler; |
Port(ServiceMap map) |
- : name = map['name'], |
- handler = map['handler']; |
+ : name = map['name'], |
+ handler = map['handler']; |
} |
class PersistentHandles implements M.PersistentHandles { |
@@ -1177,17 +1173,16 @@ class PersistentHandles implements M.PersistentHandles { |
final Iterable<WeakPersistentHandle> weakElements; |
PersistentHandles(ServiceMap map) |
- : this.elements = map['persistentHandles'] |
- .map((rmap) => new PersistentHandle(rmap)), |
- this.weakElements = map['weakPersistentHandles'] |
- .map((rmap) => new WeakPersistentHandle(rmap)); |
+ : this.elements = |
+ map['persistentHandles'].map((rmap) => new PersistentHandle(rmap)), |
+ this.weakElements = map['weakPersistentHandles'] |
+ .map((rmap) => new WeakPersistentHandle(rmap)); |
} |
class PersistentHandle implements M.PersistentHandle { |
final HeapObject object; |
- PersistentHandle(ServiceMap map) |
- : object = map['object']; |
+ PersistentHandle(ServiceMap map) : object = map['object']; |
} |
class WeakPersistentHandle implements M.WeakPersistentHandle { |
@@ -1198,11 +1193,11 @@ class WeakPersistentHandle implements M.WeakPersistentHandle { |
final HeapObject object; |
WeakPersistentHandle(ServiceMap map) |
- : externalSize = int.parse(map['externalSize']), |
- peer = map['peer'], |
- callbackSymbolName = map['callbackSymbolName'], |
- callbackAddress = map['callbackAddress'], |
- object = map['object']; |
+ : externalSize = int.parse(map['externalSize']), |
+ peer = map['peer'], |
+ callbackSymbolName = map['callbackSymbolName'], |
+ callbackAddress = map['callbackAddress'], |
+ object = map['object']; |
} |
class HeapSpace implements M.HeapSpace { |
@@ -1214,8 +1209,9 @@ class HeapSpace implements M.HeapSpace { |
double averageCollectionPeriodInMillis = 0.0; |
Duration get avgCollectionTime { |
- final mcs = totalCollectionTimeInSeconds * Duration.MICROSECONDS_PER_SECOND |
- / math.max(collections, 1); |
+ final mcs = totalCollectionTimeInSeconds * |
+ Duration.MICROSECONDS_PER_SECOND / |
+ math.max(collections, 1); |
return new Duration(microseconds: mcs.ceil()); |
} |
@@ -1225,8 +1221,8 @@ class HeapSpace implements M.HeapSpace { |
} |
Duration get avgCollectionPeriod { |
- final mcs = averageCollectionPeriodInMillis |
- * Duration.MICROSECONDS_PER_MILLISECOND; |
+ final mcs = |
+ averageCollectionPeriodInMillis * Duration.MICROSECONDS_PER_MILLISECOND; |
return new Duration(microseconds: mcs.ceil()); |
} |
@@ -1267,8 +1263,7 @@ class Isolate extends ServiceObjectOwner implements M.Isolate { |
void _updateRunState() { |
topFrame = M.topFrame(pauseEvent); |
- paused = (pauseEvent != null && |
- !(pauseEvent is M.ResumeEvent)); |
+ paused = (pauseEvent != null && !(pauseEvent is M.ResumeEvent)); |
running = (!paused && topFrame != null); |
idle = (!paused && topFrame == null); |
} |
@@ -1296,7 +1291,7 @@ class Isolate extends ServiceObjectOwner implements M.Isolate { |
final List<String> extensionRPCs = new List<String>(); |
- Map<String,ServiceObject> _cache = new Map<String,ServiceObject>(); |
+ Map<String, ServiceObject> _cache = new Map<String, ServiceObject>(); |
final TagProfile tagProfile = new TagProfile(20); |
Isolate._empty(ServiceObjectOwner owner) : super._empty(owner) { |
@@ -1320,10 +1315,8 @@ class Isolate extends ServiceObjectOwner implements M.Isolate { |
static const kProfileReport = '_Profile'; |
Future<ServiceMap> getSourceReport(List<String> report_kinds, |
- [Script script, |
- int startPos, |
- int endPos]) { |
- var params = { 'reports' : report_kinds }; |
+ [Script script, int startPos, int endPos]) { |
+ var params = {'reports': report_kinds}; |
if (script != null) { |
params['scriptId'] = script.id; |
} |
@@ -1451,8 +1444,7 @@ class Isolate extends ServiceObjectOwner implements M.Isolate { |
} |
Future<ServiceObject> getObject(String objectId, |
- {bool reload: true, |
- int count: kDefaultFieldLimit}) { |
+ {bool reload: true, int count: kDefaultFieldLimit}) { |
assert(objectId != null && objectId != ''); |
var obj = _cache[objectId]; |
if (obj != null) { |
@@ -1520,8 +1512,7 @@ class Isolate extends ServiceObjectOwner implements M.Isolate { |
_chunksInProgress = null; |
if (_snapshotFetch != null) { |
- _snapshotFetch.add( |
- new RawHeapSnapshot(loadedChunks, event.nodeCount)); |
+ _snapshotFetch.add(new RawHeapSnapshot(loadedChunks, event.nodeCount)); |
_snapshotFetch.close(); |
} |
} |
@@ -1530,8 +1521,8 @@ class Isolate extends ServiceObjectOwner implements M.Isolate { |
if (_snapshotFetch == null || _snapshotFetch.isClosed) { |
_snapshotFetch = new StreamController.broadcast(); |
// isolate.vm.streamListen('_Graph'); |
- isolate.invokeRpcNoUpgrade('_requestHeapSnapshot', |
- {'collectGarbage': collectGarbage}); |
+ isolate.invokeRpcNoUpgrade( |
+ '_requestHeapSnapshot', {'collectGarbage': collectGarbage}); |
} |
return _snapshotFetch.stream; |
} |
@@ -1544,7 +1535,7 @@ class Isolate extends ServiceObjectOwner implements M.Isolate { |
void _update(Map map, bool mapIsRef) { |
name = map['name']; |
vmName = map.containsKey('_vmName') ? map['_vmName'] : name; |
- number = int.parse(map['number'], onError:(_) => null); |
+ number = int.parse(map['number'], onError: (_) => null); |
if (mapIsRef) { |
return; |
} |
@@ -1552,7 +1543,7 @@ class Isolate extends ServiceObjectOwner implements M.Isolate { |
loading = false; |
runnable = map['runnable'] == true; |
_upgradeCollection(map, isolate); |
- originNumber = int.parse(map['_originNumber'], onError:(_) => null); |
+ originNumber = int.parse(map['_originNumber'], onError: (_) => null); |
rootLibrary = map['rootLib']; |
if (map['entry'] != null) { |
entry = map['entry']; |
@@ -1593,8 +1584,8 @@ class Isolate extends ServiceObjectOwner implements M.Isolate { |
var newPauseEvent = map['pauseEvent']; |
assert((pauseEvent == null) || |
- (newPauseEvent == null) || |
- !newPauseEvent.timestamp.isBefore(pauseEvent.timestamp)); |
+ (newPauseEvent == null) || |
+ !newPauseEvent.timestamp.isBefore(pauseEvent.timestamp)); |
pauseEvent = createEventFromServiceEvent(newPauseEvent); |
_updateRunState(); |
error = map['error']; |
@@ -1613,12 +1604,11 @@ class Isolate extends ServiceObjectOwner implements M.Isolate { |
} |
Future<TagProfile> updateTagProfile() { |
- return isolate.invokeRpcNoUpgrade('_getTagProfile', {}).then( |
- (Map map) { |
- var seconds = new DateTime.now().millisecondsSinceEpoch / 1000.0; |
- tagProfile._processTagProfile(seconds, map); |
- return tagProfile; |
- }); |
+ return isolate.invokeRpcNoUpgrade('_getTagProfile', {}).then((Map map) { |
+ var seconds = new DateTime.now().millisecondsSinceEpoch / 1000.0; |
+ tagProfile._processTagProfile(seconds, map); |
+ return tagProfile; |
+ }); |
} |
Map<int, Breakpoint> breakpoints = <int, Breakpoint>{}; |
@@ -1652,7 +1642,7 @@ class Isolate extends ServiceObjectOwner implements M.Isolate { |
} |
void _onEvent(ServiceEvent event) { |
- switch(event.kind) { |
+ switch (event.kind) { |
case ServiceEvent.kIsolateStart: |
case ServiceEvent.kIsolateRunnable: |
case ServiceEvent.kIsolateExit: |
@@ -1684,7 +1674,7 @@ class Isolate extends ServiceObjectOwner implements M.Isolate { |
case ServiceEvent.kNone: |
case ServiceEvent.kResume: |
assert((pauseEvent == null) || |
- !event.timestamp.isBefore(pauseEvent.timestamp)); |
+ !event.timestamp.isBefore(pauseEvent.timestamp)); |
pauseEvent = createEventFromServiceEvent(event); |
_updateRunState(); |
break; |
@@ -1715,8 +1705,8 @@ class Isolate extends ServiceObjectOwner implements M.Isolate { |
return invokeRpc('addBreakpoint', params); |
} |
- Future<ServiceObject> addBreakpointByScriptUri( |
- String uri, int line, [int col]) { |
+ Future<ServiceObject> addBreakpointByScriptUri(String uri, int line, |
+ [int col]) { |
Map params = { |
'scriptUri': uri, |
'line': line.toString(), |
@@ -1728,18 +1718,15 @@ class Isolate extends ServiceObjectOwner implements M.Isolate { |
} |
Future<ServiceObject> addBreakpointAtEntry(ServiceFunction function) { |
- return invokeRpc('addBreakpointAtEntry', |
- { 'functionId': function.id }); |
+ return invokeRpc('addBreakpointAtEntry', {'functionId': function.id}); |
} |
Future<ServiceObject> addBreakOnActivation(Instance closure) { |
- return invokeRpc('_addBreakpointAtActivation', |
- { 'objectId': closure.id }); |
+ return invokeRpc('_addBreakpointAtActivation', {'objectId': closure.id}); |
} |
Future removeBreakpoint(Breakpoint bpt) { |
- return invokeRpc('removeBreakpoint', |
- { 'breakpointId': bpt.id }); |
+ return invokeRpc('removeBreakpoint', {'breakpointId': bpt.id}); |
} |
Future pause() { |
@@ -1786,8 +1773,7 @@ class Isolate extends ServiceObjectOwner implements M.Isolate { |
}); |
} |
- Future<ServiceObject> eval(ServiceObject target, |
- String expression) { |
+ Future<ServiceObject> eval(ServiceObject target, String expression) { |
Map params = { |
'targetId': target.id, |
'expression': expression, |
@@ -1795,8 +1781,7 @@ class Isolate extends ServiceObjectOwner implements M.Isolate { |
return invokeRpc('evaluate', params); |
} |
- Future<ServiceObject> evalFrame(int frameIndex, |
- String expression) { |
+ Future<ServiceObject> evalFrame(int frameIndex, String expression) { |
Map params = { |
'frameIndex': frameIndex, |
'expression': expression, |
@@ -1849,7 +1834,7 @@ class Isolate extends ServiceObjectOwner implements M.Isolate { |
return invokeRpc('_getInstances', params); |
} |
- Future<ServiceObject> getObjectByAddress(String address, [bool ref=true]) { |
+ Future<ServiceObject> getObjectByAddress(String address, [bool ref = true]) { |
Map params = { |
'address': address, |
'ref': ref, |
@@ -1862,10 +1847,9 @@ class Isolate extends ServiceObjectOwner implements M.Isolate { |
final Map<String, ServiceMetric> nativeMetrics = <String, ServiceMetric>{}; |
Future<Map<String, ServiceMetric>> _refreshMetrics( |
- String metricType, |
- Map<String, ServiceMetric> metricsMap) { |
- return invokeRpc('_getIsolateMetricList', |
- { 'type': metricType }).then((result) { |
+ String metricType, Map<String, ServiceMetric> metricsMap) { |
+ return invokeRpc('_getIsolateMetricList', {'type': metricType}) |
+ .then((result) { |
// Clear metrics map. |
metricsMap.clear(); |
// Repopulate metrics map. |
@@ -1892,14 +1876,12 @@ class Isolate extends ServiceObjectOwner implements M.Isolate { |
String toString() => "Isolate($name)"; |
} |
- |
class NamedField implements M.NamedField { |
final String name; |
final M.ObjectRef value; |
NamedField(this.name, this.value); |
} |
- |
class ObjectStore extends ServiceObject implements M.ObjectStore { |
List<NamedField> fields = new List<NamedField>(); |
@@ -1921,9 +1903,8 @@ class ObjectStore extends ServiceObject implements M.ObjectStore { |
} |
} |
- |
/// A [ServiceObject] which implements [Map]. |
-class ServiceMap extends ServiceObject implements Map, M.UnknownObjectRef { |
+class ServiceMap extends ServiceObject implements Map, M.UnknownObjectRef { |
final Map _map = {}; |
static String objectIdRingPrefix = 'objects/'; |
@@ -1970,11 +1951,15 @@ class ServiceMap extends ServiceObject implements Map, M.UnknownObjectRef { |
} |
M.ErrorKind stringToErrorKind(String value) { |
- switch(value) { |
- case 'UnhandledException': return M.ErrorKind.unhandledException; |
- case 'LanguageError': return M.ErrorKind.unhandledException; |
- case 'InternalError': return M.ErrorKind.internalError; |
- case 'TerminationError': return M.ErrorKind.terminationError; |
+ switch (value) { |
+ case 'UnhandledException': |
+ return M.ErrorKind.unhandledException; |
+ case 'LanguageError': |
+ return M.ErrorKind.unhandledException; |
+ case 'InternalError': |
+ return M.ErrorKind.internalError; |
+ case 'TerminationError': |
+ return M.ErrorKind.terminationError; |
} |
Logger.root.severe('Unrecognized error kind: $value'); |
throw new FallThroughError(); |
@@ -2015,31 +2000,31 @@ Level _findLogLevel(int value) { |
/// A [ServiceEvent] is an asynchronous event notification from the vm. |
class ServiceEvent extends ServiceObject { |
/// The possible 'kind' values. |
- static const kVMUpdate = 'VMUpdate'; |
- static const kIsolateStart = 'IsolateStart'; |
- static const kIsolateRunnable = 'IsolateRunnable'; |
- static const kIsolateExit = 'IsolateExit'; |
- static const kIsolateUpdate = 'IsolateUpdate'; |
- static const kIsolateReload = 'IsolateReload'; |
- static const kIsolateSpawn = 'IsolateSpawn'; |
- static const kServiceExtensionAdded = 'ServiceExtensionAdded'; |
- static const kPauseStart = 'PauseStart'; |
- static const kPauseExit = 'PauseExit'; |
- static const kPauseBreakpoint = 'PauseBreakpoint'; |
- static const kPauseInterrupted = 'PauseInterrupted'; |
- static const kPauseException = 'PauseException'; |
- static const kNone = 'None'; |
- static const kResume = 'Resume'; |
- static const kBreakpointAdded = 'BreakpointAdded'; |
- static const kBreakpointResolved = 'BreakpointResolved'; |
- static const kBreakpointRemoved = 'BreakpointRemoved'; |
- static const kGraph = '_Graph'; |
- static const kGC = 'GC'; |
- static const kInspect = 'Inspect'; |
+ static const kVMUpdate = 'VMUpdate'; |
+ static const kIsolateStart = 'IsolateStart'; |
+ static const kIsolateRunnable = 'IsolateRunnable'; |
+ static const kIsolateExit = 'IsolateExit'; |
+ static const kIsolateUpdate = 'IsolateUpdate'; |
+ static const kIsolateReload = 'IsolateReload'; |
+ static const kIsolateSpawn = 'IsolateSpawn'; |
+ static const kServiceExtensionAdded = 'ServiceExtensionAdded'; |
+ static const kPauseStart = 'PauseStart'; |
+ static const kPauseExit = 'PauseExit'; |
+ static const kPauseBreakpoint = 'PauseBreakpoint'; |
+ static const kPauseInterrupted = 'PauseInterrupted'; |
+ static const kPauseException = 'PauseException'; |
+ static const kNone = 'None'; |
+ static const kResume = 'Resume'; |
+ static const kBreakpointAdded = 'BreakpointAdded'; |
+ static const kBreakpointResolved = 'BreakpointResolved'; |
+ static const kBreakpointRemoved = 'BreakpointRemoved'; |
+ static const kGraph = '_Graph'; |
+ static const kGC = 'GC'; |
+ static const kInspect = 'Inspect'; |
static const kDebuggerSettingsUpdate = '_DebuggerSettingsUpdate'; |
- static const kConnectionClosed = 'ConnectionClosed'; |
- static const kLogging = '_Logging'; |
- static const kExtension = 'Extension'; |
+ static const kConnectionClosed = 'ConnectionClosed'; |
+ static const kLogging = '_Logging'; |
+ static const kExtension = 'Extension'; |
ServiceEvent._empty(ServiceObjectOwner owner) : super._empty(owner); |
@@ -2074,11 +2059,11 @@ class ServiceEvent extends ServiceObject { |
bool get isPauseEvent { |
return (kind == kPauseStart || |
- kind == kPauseExit || |
- kind == kPauseBreakpoint || |
- kind == kPauseInterrupted || |
- kind == kPauseException || |
- kind == kNone); |
+ kind == kPauseExit || |
+ kind == kPauseBreakpoint || |
+ kind == kPauseInterrupted || |
+ kind == kPauseException || |
+ kind == kNone); |
} |
void _update(Map map, bool mapIsRef) { |
@@ -2086,8 +2071,7 @@ class ServiceEvent extends ServiceObject { |
_upgradeCollection(map, owner); |
assert(map['isolate'] == null || owner == map['isolate']); |
- timestamp = |
- new DateTime.fromMillisecondsSinceEpoch(map['timestamp']); |
+ timestamp = new DateTime.fromMillisecondsSinceEpoch(map['timestamp']); |
kind = map['kind']; |
name = 'ServiceEvent $kind'; |
vmName = name; |
@@ -2247,7 +2231,6 @@ class Breakpoint extends ServiceObject implements M.Breakpoint { |
} |
} |
- |
class LibraryDependency implements M.LibraryDependency { |
final bool isImport; |
final bool isDeferred; |
@@ -2258,13 +2241,10 @@ class LibraryDependency implements M.LibraryDependency { |
LibraryDependency._(this.isImport, this.isDeferred, this.prefix, this.target); |
- static _fromMap(map) => new LibraryDependency._(map["isImport"], |
- map["isDeferred"], |
- map["prefix"], |
- map["target"]); |
+ static _fromMap(map) => new LibraryDependency._( |
+ map["isImport"], map["isDeferred"], map["prefix"], map["target"]); |
} |
- |
class Library extends HeapObject implements M.Library { |
String uri; |
final dependencies = <LibraryDependency>[]; |
@@ -2287,8 +2267,7 @@ class Library extends HeapObject implements M.Library { |
uri = map['uri']; |
var shortUri = uri; |
- if (uri.startsWith('file://') || |
- uri.startsWith('http://')) { |
+ if (uri.startsWith('file://') || uri.startsWith('http://')) { |
shortUri = uri.substring(uri.lastIndexOf('/') + 1); |
} |
name = map['name']; |
@@ -2410,7 +2389,7 @@ class Class extends HeapObject implements M.Class { |
name = map['name']; |
vmName = (map.containsKey('_vmName') ? map['_vmName'] : name); |
if (vmName == '::') { |
- name = 'top-level-class'; // Better than '' |
+ name = 'top-level-class'; // Better than '' |
} |
var idPrefix = "classes/"; |
assert(id.startsWith(idPrefix)); |
@@ -2492,14 +2471,13 @@ class Class extends HeapObject implements M.Class { |
Future<ServiceObject> setTraceAllocations(bool enable) { |
return isolate.invokeRpc('_setTraceClassAllocation', { |
- 'enable': enable, |
- 'classId': id, |
- }); |
+ 'enable': enable, |
+ 'classId': id, |
+ }); |
} |
Future<ServiceObject> getAllocationSamples([String tags = 'None']) { |
- var params = { 'tags': tags, |
- 'classId': id }; |
+ var params = {'tags': tags, 'classId': id}; |
return isolate.invokeRpc('_getAllocationSamples', params); |
} |
@@ -2596,17 +2574,14 @@ class Guarded<T> implements M.Guarded<T> { |
throw new Exception('${obj.type} is neither Sentinel or $T'); |
} |
- Guarded.fromSentinel(this.asSentinel) |
- : asValue = null; |
- Guarded.fromValue(this.asValue) |
- : asSentinel = null; |
+ Guarded.fromSentinel(this.asSentinel) : asValue = null; |
+ Guarded.fromValue(this.asValue) : asSentinel = null; |
} |
class BoundField implements M.BoundField { |
final Field decl; |
final Guarded<Instance> value; |
- BoundField(this.decl, value) |
- : value = new Guarded(value); |
+ BoundField(this.decl, value) : value = new Guarded(value); |
} |
class NativeField implements M.NativeField { |
@@ -2618,20 +2593,20 @@ class MapAssociation implements M.MapAssociation { |
final Guarded<Instance> key; |
final Guarded<Instance> value; |
MapAssociation(key, value) |
- : key = new Guarded(key), |
- value = new Guarded(value); |
+ : key = new Guarded(key), |
+ value = new Guarded(value); |
} |
class Instance extends HeapObject implements M.Instance { |
M.InstanceKind kind; |
- String valueAsString; // If primitive. |
+ String valueAsString; // If primitive. |
bool valueAsStringIsTruncated; |
- ServiceFunction closureFunction; // If a closure. |
- Context closureContext; // If a closure. |
+ ServiceFunction closureFunction; // If a closure. |
+ Context closureContext; // If a closure. |
int length; // If a List, Map or TypedData. |
int count; |
int offset; |
- Instance pattern; // If a RegExp. |
+ Instance pattern; // If a RegExp. |
String name; |
Class typeClass; |
@@ -2643,21 +2618,21 @@ class Instance extends HeapObject implements M.Instance { |
Iterable<BoundField> fields; |
var nativeFields; |
- Iterable<Guarded<HeapObject>> elements; // If a List. |
- Iterable<MapAssociation> associations; // If a Map. |
- Iterable<dynamic> typedElements; // If a TypedData. |
- HeapObject referent; // If a MirrorReference. |
- Instance key; // If a WeakProperty. |
- Instance value; // If a WeakProperty. |
- Breakpoint activationBreakpoint; // If a Closure. |
- ServiceFunction oneByteFunction; // If a RegExp. |
- ServiceFunction twoByteFunction; // If a RegExp. |
- ServiceFunction externalOneByteFunction; // If a RegExp. |
- ServiceFunction externalTwoByteFunction; // If a RegExp. |
- Instance oneByteBytecode; // If a RegExp. |
- Instance twoByteBytecode; // If a RegExp. |
- bool isCaseSensitive; // If a RegExp. |
- bool isMultiLine; // If a RegExp. |
+ Iterable<Guarded<HeapObject>> elements; // If a List. |
+ Iterable<MapAssociation> associations; // If a Map. |
+ Iterable<dynamic> typedElements; // If a TypedData. |
+ HeapObject referent; // If a MirrorReference. |
+ Instance key; // If a WeakProperty. |
+ Instance value; // If a WeakProperty. |
+ Breakpoint activationBreakpoint; // If a Closure. |
+ ServiceFunction oneByteFunction; // If a RegExp. |
+ ServiceFunction twoByteFunction; // If a RegExp. |
+ ServiceFunction externalOneByteFunction; // If a RegExp. |
+ ServiceFunction externalTwoByteFunction; // If a RegExp. |
+ Instance oneByteBytecode; // If a RegExp. |
+ Instance twoByteBytecode; // If a RegExp. |
+ bool isCaseSensitive; // If a RegExp. |
+ bool isMultiLine; // If a RegExp. |
bool get isAbstractType => M.isAbstractType(kind); |
bool get isNull => kind == M.InstanceKind.vNull; |
@@ -2670,9 +2645,11 @@ class Instance extends HeapObject implements M.Instance { |
bool get isTypedData { |
return M.isTypedData(kind); |
} |
+ |
bool get isSimdValue { |
return M.isSimdValue(kind); |
} |
+ |
bool get isRegExp => kind == M.InstanceKind.regExp; |
bool get isMirrorReference => kind == M.InstanceKind.mirrorReference; |
bool get isWeakProperty => kind == M.InstanceKind.weakProperty; |
@@ -2731,69 +2708,88 @@ class Instance extends HeapObject implements M.Instance { |
bool isCompiled = map['_oneByteFunction'] is ServiceFunction; |
oneByteFunction = isCompiled ? map['_oneByteFunction'] : null; |
twoByteFunction = isCompiled ? map['_twoByteFunction'] : null; |
- externalOneByteFunction = isCompiled ? map['_externalOneByteFunction'] : null; |
- externalTwoByteFunction = isCompiled ? map['_externalTwoByteFunction'] : null; |
+ externalOneByteFunction = |
+ isCompiled ? map['_externalOneByteFunction'] : null; |
+ externalTwoByteFunction = |
+ isCompiled ? map['_externalTwoByteFunction'] : null; |
oneByteBytecode = map['_oneByteBytecode']; |
twoByteBytecode = map['_twoByteBytecode']; |
if (map['fields'] != null) { |
fields = map['fields'] |
- .map((f) => new BoundField(f['decl'], f['value'])).toList(); |
+ .map((f) => new BoundField(f['decl'], f['value'])) |
+ .toList(); |
} else { |
fields = null; |
} |
if (map['_nativeFields'] != null) { |
- nativeFields = map['_nativeFields'] |
- .map((f) => new NativeField(f['value'])).toList(); |
+ nativeFields = |
+ map['_nativeFields'].map((f) => new NativeField(f['value'])).toList(); |
} else { |
nativeFields = null; |
} |
if (map['elements'] != null) { |
- // Should be: |
- // elements = map['elements'].map((e) => new Guarded<Instance>(e)).toList(); |
- // some times we obtain object that are not InstanceRef |
- elements = map['elements'].map((e) => new Guarded<ServiceObject>(e)) |
- .toList(); |
+ // Should be: |
+ // elements = map['elements'].map((e) => new Guarded<Instance>(e)).toList(); |
+ // some times we obtain object that are not InstanceRef |
+ elements = |
+ map['elements'].map((e) => new Guarded<ServiceObject>(e)).toList(); |
} else { |
elements = null; |
} |
if (map['associations'] != null) { |
- associations = map['associations'].map((a) => |
- new MapAssociation(a['key'], a['value'])).toList(); |
+ associations = map['associations'] |
+ .map((a) => new MapAssociation(a['key'], a['value'])) |
+ .toList(); |
} else { |
associations = null; |
- }; |
+ } |
+ ; |
if (map['bytes'] != null) { |
Uint8List bytes = BASE64.decode(map['bytes']); |
switch (map['kind']) { |
case "Uint8ClampedList": |
- typedElements = bytes.buffer.asUint8ClampedList(); break; |
+ typedElements = bytes.buffer.asUint8ClampedList(); |
+ break; |
case "Uint8List": |
- typedElements = bytes.buffer.asUint8List(); break; |
+ typedElements = bytes.buffer.asUint8List(); |
+ break; |
case "Uint16List": |
- typedElements = bytes.buffer.asUint16List(); break; |
+ typedElements = bytes.buffer.asUint16List(); |
+ break; |
case "Uint32List": |
- typedElements = bytes.buffer.asUint32List(); break; |
+ typedElements = bytes.buffer.asUint32List(); |
+ break; |
case "Uint64List": |
- typedElements = bytes.buffer.asUint64List(); break; |
+ typedElements = bytes.buffer.asUint64List(); |
+ break; |
case "Int8List": |
- typedElements = bytes.buffer.asInt8List(); break; |
+ typedElements = bytes.buffer.asInt8List(); |
+ break; |
case "Int16List": |
- typedElements = bytes.buffer.asInt16List(); break; |
+ typedElements = bytes.buffer.asInt16List(); |
+ break; |
case "Int32List": |
- typedElements = bytes.buffer.asInt32List(); break; |
+ typedElements = bytes.buffer.asInt32List(); |
+ break; |
case "Int64List": |
- typedElements = bytes.buffer.asInt64List(); break; |
+ typedElements = bytes.buffer.asInt64List(); |
+ break; |
case "Float32List": |
- typedElements = bytes.buffer.asFloat32List(); break; |
+ typedElements = bytes.buffer.asFloat32List(); |
+ break; |
case "Float64List": |
- typedElements = bytes.buffer.asFloat64List(); break; |
+ typedElements = bytes.buffer.asFloat64List(); |
+ break; |
case "Int32x4List": |
- typedElements = bytes.buffer.asInt32x4List(); break; |
+ typedElements = bytes.buffer.asInt32x4List(); |
+ break; |
case "Float32x4List": |
- typedElements = bytes.buffer.asFloat32x4List(); break; |
+ typedElements = bytes.buffer.asFloat32x4List(); |
+ break; |
case "Float64x2List": |
- typedElements = bytes.buffer.asFloat64x2List(); break; |
+ typedElements = bytes.buffer.asFloat64x2List(); |
+ break; |
} |
} else { |
typedElements = null; |
@@ -2830,7 +2826,6 @@ class Instance extends HeapObject implements M.Instance { |
String toString() => 'Instance($shortName)'; |
} |
- |
class Context extends HeapObject implements M.Context { |
Context parentContext; |
int length; |
@@ -2850,8 +2845,8 @@ class Context extends HeapObject implements M.Context { |
return; |
} |
- variables = (map['variables'] ?? const []).map((element) => |
- new ContextElement(element)); |
+ variables = (map['variables'] ?? const []) |
+ .map((element) => new ContextElement(element)); |
// We are fully loaded. |
_loaded = true; |
@@ -2863,31 +2858,47 @@ class Context extends HeapObject implements M.Context { |
class ContextElement extends M.ContextElement { |
final Guarded<Instance> value; |
- ContextElement(Map map) |
- : value = new Guarded<Instance>(map['value']); |
+ ContextElement(Map map) : value = new Guarded<Instance>(map['value']); |
} |
M.FunctionKind stringToFunctionKind(String value) { |
- switch(value) { |
- case 'RegularFunction': return M.FunctionKind.regular; |
- case 'ClosureFunction': return M.FunctionKind.closure; |
- case 'GetterFunction': return M.FunctionKind.getter; |
- case 'SetterFunction': return M.FunctionKind.setter; |
- case 'Constructor': return M.FunctionKind.constructor; |
- case 'ImplicitGetter': return M.FunctionKind.implicitGetter; |
- case 'ImplicitSetter': return M.FunctionKind.implicitSetter; |
+ switch (value) { |
+ case 'RegularFunction': |
+ return M.FunctionKind.regular; |
+ case 'ClosureFunction': |
+ return M.FunctionKind.closure; |
+ case 'GetterFunction': |
+ return M.FunctionKind.getter; |
+ case 'SetterFunction': |
+ return M.FunctionKind.setter; |
+ case 'Constructor': |
+ return M.FunctionKind.constructor; |
+ case 'ImplicitGetter': |
+ return M.FunctionKind.implicitGetter; |
+ case 'ImplicitSetter': |
+ return M.FunctionKind.implicitSetter; |
case 'ImplicitStaticFinalGetter': |
return M.FunctionKind.implicitStaticFinalGetter; |
- case 'IrregexpFunction': return M.FunctionKind.irregexpFunction; |
- case 'StaticInitializer': return M.FunctionKind.staticInitializer; |
- case 'MethodExtractor': return M.FunctionKind.methodExtractor; |
- case 'NoSuchMethodDispatcher': return M.FunctionKind.noSuchMethodDispatcher; |
- case 'InvokeFieldDispatcher': return M.FunctionKind.invokeFieldDispatcher; |
- case 'Collected': return M.FunctionKind.collected; |
- case 'Native': return M.FunctionKind.native; |
- case 'Stub': return M.FunctionKind.stub; |
- case 'Tag': return M.FunctionKind.tag; |
- case 'SignatureFunction': return M.FunctionKind.signatureFunction; |
+ case 'IrregexpFunction': |
+ return M.FunctionKind.irregexpFunction; |
+ case 'StaticInitializer': |
+ return M.FunctionKind.staticInitializer; |
+ case 'MethodExtractor': |
+ return M.FunctionKind.methodExtractor; |
+ case 'NoSuchMethodDispatcher': |
+ return M.FunctionKind.noSuchMethodDispatcher; |
+ case 'InvokeFieldDispatcher': |
+ return M.FunctionKind.invokeFieldDispatcher; |
+ case 'Collected': |
+ return M.FunctionKind.collected; |
+ case 'Native': |
+ return M.FunctionKind.native; |
+ case 'Stub': |
+ return M.FunctionKind.stub; |
+ case 'Tag': |
+ return M.FunctionKind.tag; |
+ case 'SignatureFunction': |
+ return M.FunctionKind.signatureFunction; |
} |
Logger.root.severe('Unrecognized function kind: $value'); |
throw new FallThroughError(); |
@@ -2935,12 +2946,10 @@ class ServiceFunction extends HeapObject implements M.Function { |
ServiceFunction ownerFunction = dartOwner; |
library = ownerFunction.library; |
qualifiedName = "${ownerFunction.qualifiedName}.${name}"; |
- |
} else if (dartOwner is Class) { |
Class ownerClass = dartOwner; |
library = ownerClass.library; |
qualifiedName = "${ownerClass.name}.${name}"; |
- |
} else { |
library = dartOwner; |
qualifiedName = name; |
@@ -2997,7 +3006,6 @@ M.SentinelKind stringToSentinelKind(String s) { |
} |
class Sentinel extends ServiceObject implements M.Sentinel { |
- |
M.SentinelKind kind; |
String valueAsString; |
@@ -3052,7 +3060,6 @@ class Field extends HeapObject implements M.Field { |
if (dartOwner is Class) { |
Class ownerClass = dartOwner; |
library = ownerClass.library; |
- |
} else { |
library = dartOwner; |
} |
@@ -3064,8 +3071,8 @@ class Field extends HeapObject implements M.Field { |
guardNullable = map['_guardNullable']; |
if (map['_guardClass'] is Class) { |
- guardClass = map['_guardClass']; |
- guardClassKind = M.GuardClassKind.single; |
+ guardClass = map['_guardClass']; |
+ guardClassKind = M.GuardClassKind.single; |
} else { |
switch (map['_guardClass']) { |
case 'various': |
@@ -3086,7 +3093,6 @@ class Field extends HeapObject implements M.Field { |
String toString() => 'Field(${dartOwner.name}.$name)'; |
} |
- |
class ScriptLine { |
final Script script; |
final int line; |
@@ -3191,6 +3197,7 @@ class CallSite { |
operator ==(other) { |
return (script == other.script) && (tokenPos == other.tokenPos); |
} |
+ |
int get hashCode => (script.hashCode << 8) | tokenPos; |
String toString() => "CallSite($name, $tokenPos)"; |
@@ -3204,9 +3211,8 @@ class CallSiteEntry { |
CallSiteEntry(this.receiver, this.count, this.target); |
factory CallSiteEntry.fromMap(Map entryMap) { |
- return new CallSiteEntry(entryMap['receiver'], |
- entryMap['count'], |
- entryMap['target']); |
+ return new CallSiteEntry( |
+ entryMap['receiver'], entryMap['count'], entryMap['target']); |
} |
String toString() => "CallSiteEntry(${receiver.name}, $count)"; |
@@ -3264,19 +3270,18 @@ class Script extends HeapObject implements M.Script { |
var c = source.codeUnitAt(pos); |
if (c == 123) return 1; // { - Map literal |
- if (c == 91) return 1; // [ - List literal, index, index assignment |
+ if (c == 91) return 1; // [ - List literal, index, index assignment |
- if (c == 40) return 1; // ( - Closure call |
+ if (c == 40) return 1; // ( - Closure call |
if (_isOperatorChar(c)) { |
- while (++pos < source.length && |
- _isOperatorChar(source.codeUnitAt(pos))); |
+ while (++pos < source.length && _isOperatorChar(source.codeUnitAt(pos))); |
return pos - column; |
} |
if (_isInitialIdentifierChar(c)) { |
- while (++pos < source.length && |
- _isIdentifierChar(source.codeUnitAt(pos))); |
+ while ( |
+ ++pos < source.length && _isIdentifierChar(source.codeUnitAt(pos))); |
return pos - column; |
} |
@@ -3285,21 +3290,21 @@ class Script extends HeapObject implements M.Script { |
static bool _isOperatorChar(int c) { |
switch (c) { |
- case 25: // % |
- case 26: // & |
- case 42: // * |
- case 43: // + |
- case 45: // -: |
- case 47: // / |
- case 60: // < |
- case 61: // = |
- case 62: // > |
- case 94: // ^ |
- case 124: // | |
- case 126: // ~ |
- return true; |
- default: |
- return false; |
+ case 25: // % |
+ case 26: // & |
+ case 42: // * |
+ case 43: // + |
+ case 45: // -: |
+ case 47: // / |
+ case 60: // < |
+ case 61: // = |
+ case 62: // > |
+ case 94: // ^ |
+ case 124: // | |
+ case 126: // ~ |
+ return true; |
+ default: |
+ return false; |
} |
} |
@@ -3356,17 +3361,17 @@ class Script extends HeapObject implements M.Script { |
for (var pos = 1; pos < line.length; pos += 2) { |
// ...and is followed by (token offset, col number) pairs. |
var tokenOffset = line[pos]; |
- var colNumber = line[pos+1]; |
+ var colNumber = line[pos + 1]; |
if (firstTokenPos == null) { |
// Mark first token position. |
firstTokenPos = tokenOffset; |
lastTokenPos = tokenOffset; |
} else { |
// Keep track of max and min token positions. |
- firstTokenPos = (firstTokenPos <= tokenOffset) ? |
- firstTokenPos : tokenOffset; |
- lastTokenPos = (lastTokenPos >= tokenOffset) ? |
- lastTokenPos : tokenOffset; |
+ firstTokenPos = |
+ (firstTokenPos <= tokenOffset) ? firstTokenPos : tokenOffset; |
+ lastTokenPos = |
+ (lastTokenPos >= tokenOffset) ? lastTokenPos : tokenOffset; |
} |
_tokenToLine[tokenOffset] = lineNumber; |
_tokenToCol[tokenOffset] = colNumber; |
@@ -3419,10 +3424,7 @@ class Script extends HeapObject implements M.Script { |
} |
List<LocalVarLocation> scanLineForLocalVariableLocations(Pattern pattern, |
- String name, |
- String lineContents, |
- int lineNumber, |
- int columnOffset) { |
+ String name, String lineContents, int lineNumber, int columnOffset) { |
var r = <LocalVarLocation>[]; |
pattern.allMatches(lineContents).forEach((Match match) { |
@@ -3431,18 +3433,16 @@ class Script extends HeapObject implements M.Script { |
var nameStart = match.input.indexOf(name, match.start); |
var column = nameStart + columnOffset; |
var endColumn = column + name.length; |
- var localVarLocation = new LocalVarLocation(lineNumber, |
- column, |
- endColumn); |
+ var localVarLocation = |
+ new LocalVarLocation(lineNumber, column, endColumn); |
r.add(localVarLocation); |
}); |
return r; |
} |
- List<LocalVarLocation> scanForLocalVariableLocations(String name, |
- int tokenPos, |
- int endTokenPos) { |
+ List<LocalVarLocation> scanForLocalVariableLocations( |
+ String name, int tokenPos, int endTokenPos) { |
// A pattern that matches: |
// start of line OR non-(alpha numeric OR period) character followed by |
// name followed by |
@@ -3491,22 +3491,16 @@ class Script extends HeapObject implements M.Script { |
// io_sink.dart snapshotted source line 23 ends at column 35. |
lastColumn = math.min(getLine(line).text.length, lastColumn); |
lineContents = getLine(line).text.substring(column, lastColumn - 1); |
- return scanLineForLocalVariableLocations(pattern, |
- name, |
- lineContents, |
- line, |
- column); |
+ return scanLineForLocalVariableLocations( |
+ pattern, name, lineContents, line, column); |
} |
} |
// Scan first line. |
if (!getLine(line).isTrivial) { |
lineContents = getLine(line).text.substring(column); |
- r.addAll(scanLineForLocalVariableLocations(pattern, |
- name, |
- lineContents, |
- line++, |
- column)); |
+ r.addAll(scanLineForLocalVariableLocations( |
+ pattern, name, lineContents, line++, column)); |
} |
// Scan middle lines. |
@@ -3516,12 +3510,8 @@ class Script extends HeapObject implements M.Script { |
continue; |
} |
lineContents = getLine(line).text; |
- r.addAll( |
- scanLineForLocalVariableLocations(pattern, |
- name, |
- lineContents, |
- line++, |
- 0)); |
+ r.addAll(scanLineForLocalVariableLocations( |
+ pattern, name, lineContents, line++, 0)); |
} |
// Scan last line. |
@@ -3532,12 +3522,8 @@ class Script extends HeapObject implements M.Script { |
// io_sink.dart snapshotted source line 23 ends at column 35. |
lastColumn = math.min(getLine(line).text.length, lastColumn); |
lineContents = getLine(line).text.substring(0, lastColumn - 1); |
- r.addAll( |
- scanLineForLocalVariableLocations(pattern, |
- name, |
- lineContents, |
- line, |
- 0)); |
+ r.addAll(scanLineForLocalVariableLocations( |
+ pattern, name, lineContents, line, 0)); |
} |
return r; |
} |
@@ -3551,8 +3537,8 @@ class PcDescriptor { |
final String kind; |
Script script; |
String formattedLine; |
- PcDescriptor(this.pcOffset, this.deoptId, this.tokenPos, this.tryIndex, |
- this.kind); |
+ PcDescriptor( |
+ this.pcOffset, this.deoptId, this.tokenPos, this.tryIndex, this.kind); |
String formattedDeoptId() { |
if (deoptId == -1) { |
@@ -3589,8 +3575,7 @@ class PcDescriptors extends ServiceObject implements M.PcDescriptorsRef { |
bool get immutable => true; |
final List<PcDescriptor> descriptors = <PcDescriptor>[]; |
- PcDescriptors._empty(ServiceObjectOwner owner) : super._empty(owner) { |
- } |
+ PcDescriptors._empty(ServiceObjectOwner owner) : super._empty(owner) {} |
void _update(Map m, bool mapIsRef) { |
if (mapIsRef) { |
@@ -3601,13 +3586,13 @@ class PcDescriptors extends ServiceObject implements M.PcDescriptorsRef { |
size = m['size']; |
descriptors.clear(); |
for (var descriptor in m['members']) { |
- var pcOffset = int.parse(descriptor['pcOffset'], radix:16); |
+ var pcOffset = int.parse(descriptor['pcOffset'], radix: 16); |
var deoptId = descriptor['deoptId']; |
var tokenPos = descriptor['tokenPos']; |
var tryIndex = descriptor['tryIndex']; |
var kind = descriptor['kind'].trim(); |
- descriptors.add( |
- new PcDescriptor(pcOffset, deoptId, tokenPos, tryIndex, kind)); |
+ descriptors |
+ .add(new PcDescriptor(pcOffset, deoptId, tokenPos, tryIndex, kind)); |
} |
} |
} |
@@ -3622,7 +3607,7 @@ class LocalVarDescriptor implements M.LocalVarDescriptorsRef { |
final String kind; |
LocalVarDescriptor(this.id, this.name, this.index, this.beginPos, this.endPos, |
- this.scopeId, this.kind); |
+ this.scopeId, this.kind); |
} |
class LocalVarDescriptors extends ServiceObject { |
@@ -3648,9 +3633,8 @@ class LocalVarDescriptors extends ServiceObject { |
var endPos = descriptor['endPos']; |
var scopeId = descriptor['scopeId']; |
var kind = descriptor['kind'].trim(); |
- descriptors.add( |
- new LocalVarDescriptor(id, name, index, beginPos, endPos, scopeId, |
- kind)); |
+ descriptors.add(new LocalVarDescriptor( |
+ id, name, index, beginPos, endPos, scopeId, kind)); |
} |
} |
} |
@@ -3693,11 +3677,11 @@ class ObjectPoolEntry implements M.ObjectPoolEntry { |
} |
ObjectPoolEntry._fromObject(this.asObject, this.offset) |
- : kind = M.ObjectPoolEntryKind.object, |
- asInteger = null; |
+ : kind = M.ObjectPoolEntryKind.object, |
+ asInteger = null; |
ObjectPoolEntry._fromInteger(this.kind, this.asInteger, this.offset) |
- : asObject = null; |
+ : asObject = null; |
} |
M.ObjectPoolEntryKind stringToObjectPoolEntryKind(String kind) { |
@@ -3827,11 +3811,8 @@ class CodeInstruction { |
CodeInstruction jumpTarget; |
List<PcDescriptor> descriptors = <PcDescriptor>[]; |
- CodeInstruction(this.address, |
- this.pcOffset, |
- this.machine, |
- this.human, |
- this.object); |
+ CodeInstruction( |
+ this.address, this.pcOffset, this.machine, this.human, this.object); |
bool get isComment => address == 0; |
bool get hasDescriptors => descriptors.length > 0; |
@@ -3853,14 +3834,14 @@ class CodeInstruction { |
address = address.substring(2); |
} |
try { |
- return int.parse(address, radix:16); |
+ return int.parse(address, radix: 16); |
} catch (_) { |
return 0; |
} |
} |
- void _resolveJumpTarget(List<CodeInstruction> instructionsByAddressOffset, |
- int startAddress) { |
+ void _resolveJumpTarget( |
+ List<CodeInstruction> instructionsByAddressOffset, int startAddress) { |
if (!_isJumpInstruction()) { |
return; |
} |
@@ -3941,14 +3922,13 @@ class Code extends HeapObject implements M.Code { |
// Already done. |
return; |
} |
- if (kind != M.CodeKind.dart){ |
+ if (kind != M.CodeKind.dart) { |
return; |
} |
if (function == null) { |
return; |
} |
- if ((function.location == null) || |
- (function.location.script == null)) { |
+ if ((function.location == null) || (function.location.script == null)) { |
// Attempt to load the function. |
function.load().then((func) { |
var script = function.location.script; |
@@ -3987,8 +3967,8 @@ class Code extends HeapObject implements M.Code { |
return; |
} |
_loaded = true; |
- startAddress = int.parse(m['_startAddress'], radix:16); |
- endAddress = int.parse(m['_endAddress'], radix:16); |
+ startAddress = int.parse(m['_startAddress'], radix: 16); |
+ endAddress = int.parse(m['_endAddress'], radix: 16); |
function = isolate.getFromMap(m['function']); |
objectPool = isolate.getFromMap(m['_objectPool']); |
var disassembly = m['_disassembly']; |
@@ -4037,7 +4017,7 @@ class Code extends HeapObject implements M.Code { |
} |
void _processInline(List<ServiceFunction> inlinedFunctionsTable, |
- List<List<int>> inlinedIntervals) { |
+ List<List<int>> inlinedIntervals) { |
for (var i = 0; i < inlinedIntervals.length; i++) { |
var inlinedInterval = inlinedIntervals[i]; |
var start = inlinedInterval[0] + startAddress; |
@@ -4064,7 +4044,7 @@ class Code extends HeapObject implements M.Code { |
assert((disassembly.length % 4) == 0); |
for (var i = 0; i < disassembly.length; i += 4) { |
- var address = 0; // Assume code comment. |
+ var address = 0; // Assume code comment. |
var machine = disassembly[i + 1]; |
var human = disassembly[i + 2]; |
var object = disassembly[i + 3]; |
@@ -4074,7 +4054,7 @@ class Code extends HeapObject implements M.Code { |
var pcOffset = 0; |
if (disassembly[i] != null) { |
// Not a code comment, extract address. |
- address = int.parse(disassembly[i], radix:16); |
+ address = int.parse(disassembly[i], radix: 16); |
pcOffset = address - startAddress; |
} |
var instruction = |
@@ -4092,7 +4072,7 @@ class Code extends HeapObject implements M.Code { |
void _processDescriptors(List<Map> descriptors) { |
for (Map descriptor in descriptors) { |
- var pcOffset = int.parse(descriptor['pcOffset'], radix:16); |
+ var pcOffset = int.parse(descriptor['pcOffset'], radix: 16); |
var address = startAddress + pcOffset; |
var deoptId = descriptor['deoptId']; |
var tokenPos = descriptor['tokenPos']; |
@@ -4101,14 +4081,11 @@ class Code extends HeapObject implements M.Code { |
var instruction = instructionsByAddressOffset[address - startAddress]; |
if (instruction != null) { |
- instruction.descriptors.add(new PcDescriptor(pcOffset, |
- deoptId, |
- tokenPos, |
- tryIndex, |
- kind)); |
+ instruction.descriptors |
+ .add(new PcDescriptor(pcOffset, deoptId, tokenPos, tryIndex, kind)); |
} else { |
Logger.root.warning( |
- 'Could not find instruction with pc descriptor address: $address'); |
+ 'Could not find instruction with pc descriptor address: $address'); |
} |
} |
} |
@@ -4118,13 +4095,11 @@ class Code extends HeapObject implements M.Code { |
return (address >= startAddress) && (address < endAddress); |
} |
- bool get isDartCode => (kind == M.CodeKind.dart) || |
- (kind == M.CodeKind.stub); |
+ bool get isDartCode => (kind == M.CodeKind.dart) || (kind == M.CodeKind.stub); |
String toString() => 'Code($kind, $name)'; |
} |
- |
class SocketKind { |
final _value; |
const SocketKind._internal(this._value); |
@@ -4143,6 +4118,7 @@ class SocketKind { |
Logger.root.warning('Unknown socket kind $s'); |
throw new FallThroughError(); |
} |
+ |
static const Listening = const SocketKind._internal('Listening'); |
static const Normal = const SocketKind._internal('Normal'); |
static const Pipe = const SocketKind._internal('Pipe'); |
@@ -4157,9 +4133,8 @@ class SocketStats { |
final int writeCalls; |
final int available; |
- SocketStats(this.bytesRead, this.bytesWritten, |
- this.readCalls, this.writeCalls, |
- this.available); |
+ SocketStats(this.bytesRead, this.bytesWritten, this.readCalls, |
+ this.writeCalls, this.available); |
} |
/// A peer to a Socket in dart:io. Sockets can represent network sockets or |
@@ -4226,14 +4201,13 @@ class Socket extends ServiceObject { |
} |
class ServiceMetric extends ServiceObject implements M.Metric { |
- ServiceMetric._empty(ServiceObjectOwner owner) : super._empty(owner) { |
- } |
+ ServiceMetric._empty(ServiceObjectOwner owner) : super._empty(owner) {} |
bool get immutable => false; |
Future<Map> _fetchDirect({int count: kDefaultFieldLimit}) { |
assert(owner is Isolate); |
- return isolate.invokeRpcNoUpgrade('_getIsolateMetric', { 'metricId': id }); |
+ return isolate.invokeRpcNoUpgrade('_getIsolateMetric', {'metricId': id}); |
} |
String description; |
@@ -4279,7 +4253,6 @@ class Frame extends ServiceObject implements M.Frame { |
String toString() => "Frame(${function.qualifiedName} $location)"; |
} |
- |
class ServiceMessage extends ServiceObject { |
int index; |
String messageObjectId; |
@@ -4301,7 +4274,6 @@ class ServiceMessage extends ServiceObject { |
} |
} |
- |
// Helper function to extract possible breakpoint locations from a |
// SourceReport for some script. |
Set<int> getPossibleBreakpointLines(ServiceMap report, Script script) { |
@@ -4343,7 +4315,6 @@ Set<int> getPossibleBreakpointLines(ServiceMap report, Script script) { |
return result; |
} |
- |
// Returns true if [map] is a service map. i.e. it has the following keys: |
// 'id' and a 'type'. |
bool _isServiceMap(Map m) { |