On 2010-01-18, at 04:34, Rami Ojares / AMG wrote:

> Below is the debug output.
> At the bottom is the result of clicking one of the "<Pane>" objects in the 
> debugger.
> So from that I draw the following conclusions.
> 
> The argument c (the child) is an object with attributes
> - attrs, children (might be missing), class
> 
> attrs seems to be an object (curly braces)
> children seems to be an array (brackets)
> class seems to be something special ( less-than, greater-than) I would assume 
> this is class (sorry but I don't know exactly what is the distinction between 
> class and object in javascript).

I need to write up more about how the debugger represents objects.  Basically, 
it tries to print a literal representation that is isomorphic to the actual 
object.  Javascript is a prototype-based language, and we build classes and 
instances on top of the prototyping mechanism.  There is no literal 
representation of an object that has a prototype different from 
Object.prototype, so the debugger represents such objects in the format 
<<"type"#"unique id"| "mnemonic name">>.  It will also use this format if an 
object that does have a literal representation is abbreviated due to being 
longer than Debug.printLength, or deeper than Debug.printDepth, or contains 
circular references.  Finally, if you use the format "%#w", the debugger will 
only use the literal representation if the literal representation will be `==` 
to the actual object -- any other object will be represented using the detailed 
<<>> format.

> So far so good.
> The childClass seems to be always something of the form <...> (ie. class)
> Like it was supposed to.
> 
> Then I execute the crucial line
> childClass.prototype is lz.Pane
> 
> But it always returns false...damn.

I think I see the problem.  You must be using swf9/10?  And in that runtime, 
the test I described will not work.  Hm.  In fact, I'm not sure how you can ask 
if one Class is a subclass of another Class in AS3.  I'll have to research that!

Reply via email to