From 960fd3736a29515fdade6357d5ccf329ef35cc43 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 20 Sep 2022 13:17:26 -0700 Subject: [PATCH] Removed internalProperties group from proxy and tests. (#75906) Co-authored-by: Ilona Tomkowicz --- .../MemberObjectsExplorer.cs | 33 ++++--------------- .../BrowserDebugProxy/ValueTypeClass.cs | 5 +-- .../DebuggerTestSuite/DebuggerTestBase.cs | 9 +++-- .../DebuggerTestSuite/GetPropertiesTests.cs | 30 ++++++++--------- 4 files changed, 24 insertions(+), 53 deletions(-) diff --git a/src/mono/wasm/debugger/BrowserDebugProxy/MemberObjectsExplorer.cs b/src/mono/wasm/debugger/BrowserDebugProxy/MemberObjectsExplorer.cs index 38c6540b812d6..be514841ca804 100644 --- a/src/mono/wasm/debugger/BrowserDebugProxy/MemberObjectsExplorer.cs +++ b/src/mono/wasm/debugger/BrowserDebugProxy/MemberObjectsExplorer.cs @@ -68,8 +68,7 @@ private static async Task ReadFieldValue( fieldValue["__section"] = field.Attributes switch { FieldAttributes.Private => "private", - FieldAttributes.Public => "result", - _ => "internal" + _ => "result" }; if (field.IsBackingField) @@ -432,8 +431,7 @@ async Task UpdateBackingFieldWithPropertyAttributes(JObject backingField, string backingField["__section"] = getterMemberAccessAttrs switch { MethodAttributes.Private => "private", - MethodAttributes.Public => "result", - _ => "internal" + _ => "result" }; backingField["__state"] = state?.ToString(); @@ -481,8 +479,7 @@ async Task AddProperty( propRet["__section"] = getterAttrs switch { MethodAttributes.Private => "private", - MethodAttributes.Public => "result", - _ => "internal" + _ => "result" }; propRet["__state"] = state?.ToString(); if (parentTypeId != -1) @@ -659,25 +656,21 @@ static void AddOnlyNewFieldValuesByNameTo(JArray namedValues, IDictionary JObject.FromObject(new { result = Result, - privateProperties = PrivateMembers, - internalProperties = OtherMembers + privateProperties = PrivateMembers }); public GetMembersResult() { Result = new JArray(); PrivateMembers = new JArray(); - OtherMembers = new JArray(); } public GetMembersResult(JArray value, bool sortByAccessLevel) @@ -685,7 +678,6 @@ public GetMembersResult(JArray value, bool sortByAccessLevel) var t = FromValues(value, sortByAccessLevel); Result = t.Result; PrivateMembers = t.PrivateMembers; - OtherMembers = t.OtherMembers; } public static GetMembersResult FromValues(IEnumerable values, bool splitMembersByAccessLevel = false) => @@ -720,9 +712,6 @@ private void Split(JToken member) case "private": PrivateMembers.Add(member); return; - case "internal": - OtherMembers.Add(member); - return; default: Result.Add(member); return; @@ -733,7 +722,6 @@ private void Split(JToken member) { Result = (JArray)Result.DeepClone(), PrivateMembers = (JArray)PrivateMembers.DeepClone(), - OtherMembers = (JArray)OtherMembers.DeepClone() }; public IEnumerable Where(Func predicate) @@ -752,26 +740,17 @@ public IEnumerable Where(Func predicate) yield return item; } } - foreach (var item in OtherMembers) - { - if (predicate(item)) - { - yield return item; - } - } } internal JToken FirstOrDefault(Func p) => Result.FirstOrDefault(p) - ?? PrivateMembers.FirstOrDefault(p) - ?? OtherMembers.FirstOrDefault(p); + ?? PrivateMembers.FirstOrDefault(p); internal JArray Flatten() { var result = new JArray(); result.AddRange(Result); result.AddRange(PrivateMembers); - result.AddRange(OtherMembers); return result; } public override string ToString() => $"{JObject}\n"; diff --git a/src/mono/wasm/debugger/BrowserDebugProxy/ValueTypeClass.cs b/src/mono/wasm/debugger/BrowserDebugProxy/ValueTypeClass.cs index 07b2036caacb3..0b28bf082b7d6 100644 --- a/src/mono/wasm/debugger/BrowserDebugProxy/ValueTypeClass.cs +++ b/src/mono/wasm/debugger/BrowserDebugProxy/ValueTypeClass.cs @@ -98,9 +98,7 @@ JObject GetFieldWithMetadata(FieldTypeClass field, JObject fieldValue, bool isSt if (isStatic) fieldValue["name"] = field.Name; FieldAttributes attr = field.Attributes & FieldAttributes.FieldAccessMask; - fieldValue["__section"] = attr == FieldAttributes.Public - ? "public" : - attr == FieldAttributes.Private ? "private" : "internal"; + fieldValue["__section"] = attr == FieldAttributes.Private ? "private" : "result"; if (field.IsBackingField) { @@ -218,7 +216,6 @@ public async Task GetMemberValues( result = _combinedResult.Clone(); RemovePropertiesFrom(result.Result); RemovePropertiesFrom(result.PrivateMembers); - RemovePropertiesFrom(result.OtherMembers); } if (result == null) diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/DebuggerTestBase.cs b/src/mono/wasm/debugger/DebuggerTestSuite/DebuggerTestBase.cs index 555c0cf744dcd..b533d39910ac1 100644 --- a/src/mono/wasm/debugger/DebuggerTestSuite/DebuggerTestBase.cs +++ b/src/mono/wasm/debugger/DebuggerTestSuite/DebuggerTestBase.cs @@ -988,7 +988,7 @@ internal virtual async Task GetProperties(string id, JToken fn_args = nu return locals; } - internal async Task<(JToken, JToken, JToken)> GetPropertiesSortedByProtectionLevels(string id, JToken fn_args = null, bool? own_properties = null, bool? accessors_only = null, bool expect_ok = true) + internal async Task<(JToken, JToken)> GetPropertiesSortedByProtectionLevels(string id, JToken fn_args = null, bool? own_properties = null, bool? accessors_only = null, bool expect_ok = true) { if (UseCallFunctionOnBeforeGetProperties && !id.StartsWith("dotnet:scope:")) { @@ -1004,7 +1004,7 @@ internal virtual async Task GetProperties(string id, JToken fn_args = nu var result = await cli.SendCommand("Runtime.callFunctionOn", cfo_args, token); AssertEqual(expect_ok, result.IsOk, $"Runtime.getProperties returned {result.IsOk} instead of {expect_ok}, for {cfo_args.ToString()}, with Result: {result}"); if (!result.IsOk) - return (null, null, null); + return (null, null); id = result.Value["result"]?["objectId"]?.Value(); } @@ -1024,10 +1024,9 @@ internal virtual async Task GetProperties(string id, JToken fn_args = nu var frame_props = await cli.SendCommand("Runtime.getProperties", get_prop_req, token); AssertEqual(expect_ok, frame_props.IsOk, $"Runtime.getProperties returned {frame_props.IsOk} instead of {expect_ok}, for {get_prop_req}, with Result: {frame_props}"); if (!frame_props.IsOk) - return (null, null, null);; + return (null, null);; var locals = frame_props.Value["result"]; - var locals_internal = frame_props.Value["internalProperties"]; var locals_private = frame_props.Value["privateProperties"]; // FIXME: Should be done when generating the list in dotnet.es6.lib.js, but not sure yet @@ -1044,7 +1043,7 @@ internal virtual async Task GetProperties(string id, JToken fn_args = nu } } - return (locals, locals_internal, locals_private); + return (locals, locals_private); } internal virtual async Task<(JToken, Result)> EvaluateOnCallFrame(string id, string expression, bool expect_ok = true) diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/GetPropertiesTests.cs b/src/mono/wasm/debugger/DebuggerTestSuite/GetPropertiesTests.cs index d9fc2098dc07e..537c286ad60c6 100644 --- a/src/mono/wasm/debugger/DebuggerTestSuite/GetPropertiesTests.cs +++ b/src/mono/wasm/debugger/DebuggerTestSuite/GetPropertiesTests.cs @@ -449,12 +449,13 @@ private void AssertHasOnlyExpectedProperties(string[] expected_names, IEnumerabl throw new XunitException($"missing or unexpected members found"); } - public static TheoryData, Dictionary, Dictionary, string> GetDataForProtectionLevels() + public static TheoryData, Dictionary, string> GetDataForProtectionLevels() { - var data = new TheoryData, Dictionary, Dictionary, string>(); + var data = new TheoryData, Dictionary, string>(); var public_props = new Dictionary() { + // --------- public ------------: // own: {"BaseBase_PropertyForHidingWithField", TNumber(210)}, {"Base_PropertyForOverridingWithProperty", TGetter("Base_PropertyForOverridingWithProperty", TDateTime(new DateTime(2020, 7, 6, 5, 4, 3)))}, @@ -487,10 +488,8 @@ public static TheoryData, Dictionary(){ + // ---- internal / protected ----: // own: {"BaseBase_AutoPropertyForHidingWithProperty", TGetter("BaseBase_AutoPropertyForHidingWithProperty", TString("Derived#BaseBase_AutoPropertyForHidingWithProperty"))}, {"Base_PropertyForOverridingWithAutoProperty", TDateTime(new DateTime(2022, 7, 6, 5, 4, 3))}, @@ -510,20 +509,19 @@ public static TheoryData, Dictionary() { // own + // public {"a", TNumber(4)}, {"DateTime", TGetter("DateTime")}, {"AutoStringProperty", TString("CloneableStruct#AutoStringProperty")}, {"FirstName", TGetter("FirstName")}, - {"LastName", TGetter("LastName")} - }; - internal_protected_props = new Dictionary() - { + {"LastName", TGetter("LastName")}, + // internal {"b", TBool(true)} }; @@ -533,14 +531,14 @@ public static TheoryData, Dictionary expectedPublic, Dictionary expectedProtInter, Dictionary expectedPriv, string entryMethod) => + Dictionary expectedPublicInternalAndProtected, Dictionary expectedPriv, string entryMethod) => await CheckInspectLocalsAtBreakpointSite( $"DebuggerTests.GetPropertiesTests.{entryMethod}", "InstanceMethod", 1, $"DebuggerTests.GetPropertiesTests.{entryMethod}.InstanceMethod", $"window.setTimeout(function() {{ invoke_static_method ('[debugger-test] DebuggerTests.GetPropertiesTests.{entryMethod}:run'); }})", @@ -548,14 +546,12 @@ await CheckInspectLocalsAtBreakpointSite( { var id = pause_location["callFrames"][0]["callFrameId"].Value(); var (obj, _) = await EvaluateOnCallFrame(id, "this"); - var (pub, internalAndProtected, priv) = await GetPropertiesSortedByProtectionLevels(obj["objectId"]?.Value()); + var (pubInternalAndProtected, priv) = await GetPropertiesSortedByProtectionLevels(obj["objectId"]?.Value()); - AssertHasOnlyExpectedProperties(expectedPublic.Keys.ToArray(), pub.Values()); - AssertHasOnlyExpectedProperties(expectedProtInter.Keys.ToArray(), internalAndProtected.Values()); + AssertHasOnlyExpectedProperties(expectedPublicInternalAndProtected.Keys.ToArray(), pubInternalAndProtected.Values()); AssertHasOnlyExpectedProperties(expectedPriv.Keys.ToArray(), priv.Values()); - await CheckProps(pub, expectedPublic, "public"); - await CheckProps(internalAndProtected, expectedProtInter, "internalAndProtected"); + await CheckProps(pubInternalAndProtected, expectedPublicInternalAndProtected, "result"); await CheckProps(priv, expectedPriv, "private"); }); }