Index: runtime/vm/object.h |
diff --git a/runtime/vm/object.h b/runtime/vm/object.h |
index d59cd8264f749f1158f690b0a983ce27145034f3..17fe0c36f15ab9b5fb046c1caeb6434267ccefac 100644 |
--- a/runtime/vm/object.h |
+++ b/runtime/vm/object.h |
@@ -1156,6 +1156,16 @@ class Function : public Object { |
RawCode* closure_allocation_stub() const; |
void set_closure_allocation_stub(const Code& value) const; |
+ RawFunction* method_extractor() const; |
+ void set_method_extractor(const Function& value) const; |
+ |
+ void set_extracted_method_closure(const Function& function) const; |
+ RawFunction* extracted_method_closure() const; |
+ |
+ bool IsMethodExtractor() const { |
+ return kind() == RawFunction::kMethodExtractor; |
+ } |
+ |
// Returns true iff an implicit closure function has been created |
// for this function. |
bool HasImplicitClosureFunction() const { |
@@ -1572,6 +1582,11 @@ class ClosureData: public Object { |
} |
void set_closure_allocation_stub(const Code& value) const; |
+ RawFunction* method_extractor() const { |
+ return raw_ptr()->method_extractor_; |
+ } |
+ void set_method_extractor(const Function& value) const; |
+ |
static RawClosureData* New(); |
HEAP_OBJECT_IMPLEMENTATION(ClosureData, Object); |