Index: runtime/observatory/lib/src/models/objects/function.dart |
diff --git a/runtime/observatory/lib/src/models/objects/function.dart b/runtime/observatory/lib/src/models/objects/function.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..bb763af57c4e2c6a4b224f323e45586b5e3b92ea |
--- /dev/null |
+++ b/runtime/observatory/lib/src/models/objects/function.dart |
@@ -0,0 +1,69 @@ |
+// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
+// for details. All rights reserved. Use of this source code is governed by a |
+// BSD-style license that can be found in the LICENSE file |
+ |
+part of models; |
+ |
+enum FunctionKind { |
+ regular, |
+ closure, |
+ getter, |
+ setter, |
+ constructor, |
+ implicitGetter, |
+ implicitSetter, |
+ implicitStaticFinalGetter, |
+ irregexpFunction, |
+ staticInitializer, |
+ methodExtractor, |
+ noSuchMethodDispatcher, |
+ invokeFieldDispatcher, |
+ collected, |
+ native, |
+ stub, |
+ tag, |
+ signatureFunction |
+} |
+ |
+bool isSyntheticFunction(FunctionKind kind) { |
+ switch (kind) { |
+ case FunctionKind.collected: |
+ case FunctionKind.native: |
+ case FunctionKind.stub: |
+ case FunctionKind.tag: |
+ return true; |
+ default: |
+ return false; |
+ } |
+} |
+ |
+bool isDartFunction(FunctionKind kind) => !isSyntheticFunction(kind); |
+bool isStubFunction(FunctionKind kind) => kind == FunctionKind.stub; |
+bool hasDartCode(FunctionKind kind) => |
+ isDartFunction(kind) || isStubFunction(kind); |
+ |
+abstract class FunctionRef extends ObjectRef { |
+ /// The name of this class. |
+ String get name; |
+ |
+ /// The owner of this function, which can be a LibraryRef, ClassRef, |
+ /// or a FunctionRef. |
+ ObjectRef get dartOwner; // owner |
+ |
+ /// Is this function static? |
+ bool get isStatic; |
+ |
+ /// Is this function const? |
+ bool get isConst; |
+ |
+ /// The kind of the function. |
+ FunctionKind get kind; |
+} |
+ |
+abstract class Function extends Object implements FunctionRef { |
+ /// The location of this function in the source code. [optional] |
+ SourceLocation get location; |
+ |
+ /// The compiled code associated with this function. [optional] |
+ CodeRef get code; |
+} |