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 8f81d7ef0e03ab7c7872a9ca86a50c6e6d600aad..925e0e75eba7d5cfaaadc88d4d4a2ee261ccb130 100644 |
--- a/runtime/observatory/lib/src/service/object.dart |
+++ b/runtime/observatory/lib/src/service/object.dart |
@@ -1804,8 +1804,10 @@ class FunctionKind { |
final String _strValue; |
FunctionKind._internal(this._strValue); |
toString() => _strValue; |
- bool isSynthetic() => [kCollected, kNative, kTag, kReused].contains(this); |
- |
+ bool isSynthetic() => [kCollected, kNative, kStub, kTag].contains(this); |
+ bool isDart() => !isSynthetic(); |
+ bool isStub() => (this == kStub); |
+ bool hasDartCode() => isDart() || isStub(); |
static FunctionKind fromJSON(String value) { |
switch(value) { |
case 'kRegularFunction': return kRegularFunction; |
@@ -1815,16 +1817,19 @@ class FunctionKind { |
case 'kConstructor': return kConstructor; |
case 'kImplicitGetter': return kImplicitGetterFunction; |
case 'kImplicitSetter': return kImplicitSetterFunction; |
+ case 'kImplicitStaticFinalGetter': return kImplicitStaticFinalGetter; |
+ case 'kIrregexpFunction': return kIrregexpFunction; |
case 'kStaticInitializer': return kStaticInitializer; |
case 'kMethodExtractor': return kMethodExtractor; |
case 'kNoSuchMethodDispatcher': return kNoSuchMethodDispatcher; |
case 'kInvokeFieldDispatcher': return kInvokeFieldDispatcher; |
case 'Collected': return kCollected; |
case 'Native': return kNative; |
+ case 'Stub': return kStub; |
case 'Tag': return kTag; |
- case 'Reused': return kReused; |
} |
- return kUNKNOWN; |
+ print('did not understand $value'); |
+ throw new FallThroughError(); |
} |
static FunctionKind kRegularFunction = new FunctionKind._internal('function'); |
@@ -1834,6 +1839,8 @@ class FunctionKind { |
static FunctionKind kConstructor = new FunctionKind._internal('constructor'); |
static FunctionKind kImplicitGetterFunction = new FunctionKind._internal('implicit getter function'); |
static FunctionKind kImplicitSetterFunction = new FunctionKind._internal('implicit setter function'); |
+ static FunctionKind kImplicitStaticFinalGetter = new FunctionKind._internal('implicit static final getter'); |
+ static FunctionKind kIrregexpFunction = new FunctionKind._internal('ir regexp function'); |
static FunctionKind kStaticInitializer = new FunctionKind._internal('static initializer'); |
static FunctionKind kMethodExtractor = new FunctionKind._internal('method extractor'); |
static FunctionKind kNoSuchMethodDispatcher = new FunctionKind._internal('noSuchMethod dispatcher'); |
@@ -1841,7 +1848,7 @@ class FunctionKind { |
static FunctionKind kCollected = new FunctionKind._internal('Collected'); |
static FunctionKind kNative = new FunctionKind._internal('Native'); |
static FunctionKind kTag = new FunctionKind._internal('Tag'); |
- static FunctionKind kReused = new FunctionKind._internal('Reused'); |
+ static FunctionKind kStub = new FunctionKind._internal('Stub'); |
static FunctionKind kUNKNOWN = new FunctionKind._internal('UNKNOWN'); |
} |
@@ -2344,7 +2351,8 @@ class CodeKind { |
final _value; |
const CodeKind._internal(this._value); |
String toString() => '$_value'; |
- |
+ bool isSynthetic() => [Collected, Native, Tag].contains(this); |
+ bool isDart() => !isSynthetic(); |
static CodeKind fromString(String s) { |
if (s == 'Native') { |
return Native; |
@@ -2352,18 +2360,18 @@ class CodeKind { |
return Dart; |
} else if (s == 'Collected') { |
return Collected; |
- } else if (s == 'Reused') { |
- return Reused; |
} else if (s == 'Tag') { |
return Tag; |
+ } else if (s == 'Stub') { |
+ return Stub; |
} |
- Logger.root.warning('Unknown code kind $s'); |
+ print('do not understand code kind $s'); |
throw new FallThroughError(); |
} |
- static const Native = const CodeKind._internal('Native'); |
- static const Dart = const CodeKind._internal('Dart'); |
static const Collected = const CodeKind._internal('Collected'); |
- static const Reused = const CodeKind._internal('Reused'); |
+ static const Dart = const CodeKind._internal('Dart'); |
+ static const Native = const CodeKind._internal('Native'); |
+ static const Stub = const CodeKind._internal('Stub'); |
static const Tag = const CodeKind._internal('Tag'); |
} |
@@ -2572,7 +2580,8 @@ class Code extends ServiceObject { |
return (address >= startAddress) && (address < endAddress); |
} |
- @reflectable bool get isDartCode => kind == CodeKind.Dart; |
+ @reflectable bool get isDartCode => (kind == CodeKind.Dart) || |
+ (kind == CodeKind.Stub); |
} |