[observatory] Fix _guardLength serialization to output a string, rather than an int.
Change-Id: I12e3505649ebe9bb72f479dc7e2fc2dd19226ed7
Reviewed-on: https://dart-review.googlesource.com/68802
Reviewed-by: Ryan Macnak <rmacnak@google.com>
diff --git a/runtime/observatory/tests/service/get_object_rpc_test.dart b/runtime/observatory/tests/service/get_object_rpc_test.dart
index 6e1cb43..7734057 100644
--- a/runtime/observatory/tests/service/get_object_rpc_test.dart
+++ b/runtime/observatory/tests/service/get_object_rpc_test.dart
@@ -14,6 +14,7 @@
class _DummyClass {
static var dummyVar = 11;
+ final List<String> dummyList = new List<String>(20);
void dummyFunction() {}
}
@@ -884,6 +885,27 @@
expect(result['_guardLength'], isNotNull);
},
+ // field
+ (Isolate isolate) async {
+ // Call eval to get a class id.
+ var evalResult = await eval(isolate, 'new _DummyClass()');
+ var id = "${evalResult['class']['id']}/fields/dummyList";
+ var params = {
+ 'objectId': id,
+ };
+ var result = await isolate.invokeRpcNoUpgrade('getObject', params);
+ expect(result['type'], equals('Field'));
+ expect(result['id'], equals(id));
+ expect(result['name'], equals('dummyList'));
+ expect(result['const'], equals(false));
+ expect(result['static'], equals(false));
+ expect(result['final'], equals(true));
+ expect(result['location']['type'], equals('SourceLocation'));
+ expect(result['_guardNullable'], isNotNull);
+ expect(result['_guardClass'], isNotNull);
+ expect(result['_guardLength'], equals('20'));
+ },
+
// invalid field.
(Isolate isolate) async {
// Call eval to get a class id.
diff --git a/runtime/vm/object_service.cc b/runtime/vm/object_service.cc
index 6dd1d5b..7812ac5 100644
--- a/runtime/vm/object_service.cc
+++ b/runtime/vm/object_service.cc
@@ -394,7 +394,7 @@
} else if (guarded_list_length() == kNoFixedLength) {
jsobj.AddProperty("_guardLength", "variable");
} else {
- jsobj.AddProperty("_guardLength", guarded_list_length());
+ jsobj.AddPropertyF("_guardLength", "%" Pd, guarded_list_length());
}
const class Script& script = Script::Handle(Script());
if (!script.IsNull()) {