@@ -40,12 +40,12 @@ function ConvertFrom-YamlNode {
4040 $frame.Node = $effective
4141
4242 if ($effective.Kind -eq ' Scalar' ) {
43- $frame.Holder.Value = (Resolve-YamlScalar - Node $effective ).Value
43+ $frame.Holder.PSObject.Properties [ ' Value ' ]. Value = (Resolve-YamlScalar - Node $effective ).Value
4444 [void ] $stack.Pop ()
4545 continue
4646 }
4747 if ($Cache.ContainsKey ($effective.Id )) {
48- $frame.Holder.Value = $Cache [$effective.Id ]
48+ $frame.Holder.PSObject.Properties [ ' Value ' ]. Value = $Cache [$effective.Id ]
4949 [void ] $stack.Pop ()
5050 continue
5151 }
@@ -70,7 +70,7 @@ function ConvertFrom-YamlNode {
7070 $frame.State = ' PropertyKey'
7171 }
7272 $Cache [$effective.Id ] = $frame.Result
73- $frame.Holder.Value = $frame.Result
73+ $frame.Holder.PSObject.Properties [ ' Value ' ]. Value = $frame.Result
7474 continue
7575 }
7676
@@ -96,7 +96,7 @@ function ConvertFrom-YamlNode {
9696 continue
9797 }
9898 if ($frame.State -eq ' SequenceValue' ) {
99- $frame.Result [$frame.Index ] = $frame.Child.Value
99+ $frame.Result [$frame.Index ] = $frame.Child.PSObject.Properties [ ' Value ' ]. Value
100100 $frame.Index ++
101101 $frame.State = ' Sequence'
102102 continue
@@ -128,10 +128,11 @@ function ConvertFrom-YamlNode {
128128 continue
129129 }
130130 if ($frame.State -eq ' OmapKeyValue' ) {
131- $frame.Key = if ($null -eq $frame.Child.Value ) {
132- [System.DBNull ]::Value
131+ $keyValue = $frame.Child.PSObject.Properties [' Value' ].Value
132+ if ([object ]::ReferenceEquals($keyValue , $null )) {
133+ $frame.Key = [System.DBNull ]::Value
133134 } else {
134- $frame.Child.Value
135+ $frame.Key = $keyValue
135136 }
136137 $entryNode = $frame.Node.Items [$frame.Index ]
137138 while ($entryNode.Kind -eq ' Alias' ) {
@@ -153,7 +154,7 @@ function ConvertFrom-YamlNode {
153154 continue
154155 }
155156 if ($frame.State -eq ' OmapValue' ) {
156- $frame.Result.Add ($frame.Key , $frame.Child.Value )
157+ $frame.Result.Add ($frame.Key , $frame.Child.PSObject.Properties [ ' Value ' ]. Value)
157158 $frame.Index ++
158159 $frame.State = ' OmapKey'
159160 continue
@@ -180,10 +181,11 @@ function ConvertFrom-YamlNode {
180181 continue
181182 }
182183 if ($frame.State -eq ' DictionaryKeyValue' ) {
183- $frame.Key = if ($null -eq $frame.Child.Value ) {
184- [System.DBNull ]::Value
184+ $keyValue = $frame.Child.PSObject.Properties [' Value' ].Value
185+ if ([object ]::ReferenceEquals($keyValue , $null )) {
186+ $frame.Key = [System.DBNull ]::Value
185187 } else {
186- $frame.Child.Value
188+ $frame.Key = $keyValue
187189 }
188190 if ($frame.Node.Tag -ceq ' tag:yaml.org,2002:set' ) {
189191 $frame.Result.Add ($frame.Key , $null )
@@ -207,7 +209,7 @@ function ConvertFrom-YamlNode {
207209 continue
208210 }
209211 if ($frame.State -eq ' DictionaryValue' ) {
210- $frame.Result.Add ($frame.Key , $frame.Child.Value )
212+ $frame.Result.Add ($frame.Key , $frame.Child.PSObject.Properties [ ' Value ' ]. Value)
211213 $frame.Index ++
212214 $frame.State = ' DictionaryKey'
213215 continue
@@ -234,7 +236,7 @@ function ConvertFrom-YamlNode {
234236 continue
235237 }
236238 if ($frame.State -eq ' PropertyKeyValue' ) {
237- $frame.Key = $frame.Child.Value
239+ $frame.Key = $frame.Child.PSObject.Properties [ ' Value ' ]. Value
238240 if ($frame.Key -isnot [string ] -or [string ]::IsNullOrEmpty($frame.Key )) {
239241 $keyNode = $frame.Node.Entries [$frame.Index ].Key
240242 throw (New-YamlException - Start $keyNode.Start - End $keyNode.End `
@@ -268,13 +270,13 @@ function ConvertFrom-YamlNode {
268270 $frame.Result.PSObject.Properties.Add (
269271 [System.Management.Automation.PSNoteProperty ]::new(
270272 [string ] $frame.Key ,
271- $frame.Child.Value
273+ $frame.Child.PSObject.Properties [ ' Value ' ]. Value
272274 )
273275 )
274276 $frame.Index ++
275277 $frame.State = ' PropertyKey'
276278 }
277279 }
278280
279- New-YamlValueBox - Value $root.Value
281+ New-YamlValueBox - Value $root.PSObject.Properties [ ' Value ' ]. Value
280282}
0 commit comments