mikechambers/as3corelib — Issue #183: JSONEncoder.objectToString() fails when the object has "internal" property
Author: demauk
Created: 2012-02-01 00:27:41+00:00
State: open

An object `o` can have an `internal public var myvar` variable, and `v:XML = classInfo.variable` will correctly report it as a public variable, but `o[ v.@name ]` will fail because the variable is not available to us.

This can be fixed in a similar way to the check for `Transient` metadata. An internal variable or accessor with have a `uri` attribute set to "http://www.adobe.com/2006/flex/mx/internal":

```actionscript
// If property is declared as internal, skip it
if ( v.@uri != '' && String(v.@uri).indexOf( "internal" ) != -1 )
{
continue;
}
```

I've implemented this on my fork: https://github.com/demauk/as3corelib/blob/master/src/com/adobe/serialization/json/JSONEncoder.as#L536