Index: runtime/vm/object.cc |
diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc |
index 6158a02500f739b5527248a257a37994bdacf38a..b7139ab91bb38fa949bc45382c1993dd59a347fa 100644 |
--- a/runtime/vm/object.cc |
+++ b/runtime/vm/object.cc |
@@ -4743,6 +4743,12 @@ const char* Function::KindToCString(RawFunction::Kind kind) { |
case RawFunction::kInvokeFieldDispatcher: |
return "kInvokeFieldDispatcher"; |
break; |
+ case RawFunction::kGetFieldClosure: |
+ return "kGetFieldClosure"; |
+ break; |
+ case RawFunction::kSetFieldClosure: |
+ return "kSetFieldClosure"; |
+ break; |
default: |
UNREACHABLE(); |
return NULL; |
@@ -5035,6 +5041,8 @@ intptr_t Function::NumImplicitParameters() const { |
} |
} |
if ((kind() == RawFunction::kClosureFunction) || |
+ (kind() == RawFunction::kGetFieldClosure) || |
+ (kind() == RawFunction::kSetFieldClosure) || |
(kind() == RawFunction::kSignatureFunction)) { |
return 1; // Closure object. |
} |
@@ -5043,6 +5051,8 @@ intptr_t Function::NumImplicitParameters() const { |
// marked as non-static, but they do not have a receiver. |
// Closures are handled above. |
ASSERT((kind() != RawFunction::kClosureFunction) && |
+ (kind() != RawFunction::kGetFieldClosure) && |
+ (kind() != RawFunction::kSetFieldClosure) && |
(kind() != RawFunction::kSignatureFunction)); |
return 1; // Receiver. |
} |
@@ -5505,7 +5515,9 @@ RawFunction* Function::New(const String& name, |
result.set_optimized_call_site_count(0); |
result.set_is_optimizable(is_native ? false : true); |
result.set_is_inlinable(true); |
- if (kind == RawFunction::kClosureFunction) { |
+ if ((kind == RawFunction::kClosureFunction) || |
+ (kind == RawFunction::kGetFieldClosure) || |
+ (kind == RawFunction::kSetFieldClosure) ) { |
const ClosureData& data = ClosureData::Handle(ClosureData::New()); |
result.set_data(data); |
} |
@@ -5988,6 +6000,12 @@ const char* Function::ToCString() const { |
case RawFunction::kInvokeFieldDispatcher: |
kind_str = "invoke-field-dispatcher"; |
break; |
+ case RawFunction::kGetFieldClosure: |
+ kind_str = "get-field-closure"; |
+ break; |
+ case RawFunction::kSetFieldClosure: |
+ kind_str = "set-field-closure"; |
+ break; |
default: |
UNREACHABLE(); |
} |