On second thought, the Flash and JS implementations is not 1 to 1. The 
assignment in Flash is a two-step rpocess of first assigning the value and then 
defining it as non-enumerable, while it happens all in a single call in JS.

The Util call is probably the better solution.

> On Apr 30, 2017, at 11:21 AM, Harbs <harbs.li...@gmail.com> wrote:
> 
> As far as I can tell, there’s not platform agnostic way to create properties 
> in objects which are not enumerable. In Flash you’d use 
> setObjectIsEnumerable() and in JS, you’d use Object.defineProperty().
> 
> Using setObjectIsEnumerable() in AS3 code and cross-compiling keeps the call 
> as-is and generates a runtime error.
> 
> There seem to be two ways to resolve this problem that I can think of:
> 1. Falcon can rewrite any setObjectIsEnumerable() calls to use 
> Object.defineProperty() on the JS side.
> 2. We can add a Util class to add non-enumerable properties which has 
> conditional compilation.
> 
> #1 should be more efficient at runtime, but is probably more work to 
> implement.
> 
> Thoughts?
> 
> Harbs

Reply via email to