[Laszlo-dev] how to handle user-defined classes in the, swf9 runtime

André Bargull a.bargull at intensis.de
Tue Jan 8 00:54:51 PST 2008


These two traits/mixins have got static vars resp. functions: 
"LzDataNode" and "LzDataElementTrait"

- "LzDataElementTrait.valueToElement(..)"
- "LzDataElementTrait.__LZv2E(..)"
- "LzDataNode.ELEMENT_NODE, TEXT_NODE, DOCUMENT_NODE"
- "LzDataNode.__LZescapechars"
- "LzDataNode.stringToLzData(..)"
- "LzDataNode.whitespaceChars"
- "LzDataNode.trim(..)"

> I haven't come across it used yet in any of our LFC code, just wanted
> to watch out in case it showed up.
>
>
>
> On Jan 7, 2008 4:54 PM, P T Withington <ptw at pobox.com wrote:
>   
>>  In our (ill-defined) mixin's, we allow both static vars and
>>  functions.  Not sure how we would implement that in JS2 though,
>>  because I don't think and interface allows either.  If an interface
>>  does, we are all set.  Perhaps you should try it?
>>
>>  Do we use this feature?  If we do, we'll have to figure out a way to
>>  support it, I guess.
>>
>>
>>  On 2008-01-07, at 16:40 EST, Henry Minsky wrote:
>>
>>
>>     
>>>   Can you have static "class variables" declared on a mixin?
>>>  
>>>  
>>>  
>>>   On Jan 7, 2008 4:31 PM, P T Withington <ptw at pobox.com wrote:
>>>       
>>>>   We have a plan!
>>>>  
>>>>   A _mixin_ (we need to update our terminology) is really just an
>>>>   _interface_ with implementation.  The JS2 back end, when it sees a
>>>>   mixin has to remember the implementation, and has to emit an
>>>>   interface
>>>>   declaration (i.e., copy the declaration through, stripping out any
>>>>   implementation -- actually, initially, it could leave out the body
>>>>   altogether I think).  Then, for each class that uses that mixin:
>>>>  
>>>>     mixin amixin { <body of amixin };
>>>>  
>>>>     mixin bmixin { <body of bmixin };
>>>>  
>>>>     class aclass extends anotherclass with amixin, bmixin { <body of
>>>>   aclass };
>>>>  
>>>>   the compiler has to emit 'interstitial' classes:
>>>>  
>>>>     interface bmixin {};
>>>>  
>>>>     class lzsc::bmixin$anotherclass extends anotherclass implements
>>>>   bmixin {
>>>>       <body of bmixin
>>>>     };
>>>>  
>>>>     interface amixin {};
>>>>  
>>>>     class lzsc::amixin$bmixin$anotherclass extends lzsc::bmixin
>>>>   $anotherclass implements amixin {
>>>>       <body of amixin
>>>>     }
>>>>  
>>>>     class aclass extends lzsc::amixin$bmixin$anotherclass implements
>>>>   amixin, bmixin { <body of aclass }
>>>>  
>>>>   Don, if we don't have a task filed for this, please file one.
>>>>  
>>>>  
>>>>   On 2008-01-07, at 16:08 EST, Henry Minsky wrote:
>>>>  
>>>>         
>>>>>   So what should we do with traits, I wonder.
>>>>>  
>>>>>  
>>>>>   On Jan 7, 2008 3:36 PM, P T Withington <ptw at pobox.com wrote:
>>>>>           
>>>>>>   Remember Class.lzs is really just the runtime support for JS2 class
>>>>>>   semantics in a JS1 runtime.  So the goal is to have that be
>>>>>>   unused in
>>>>>>   a JS2 runtime (like swf9).
>>>>>>  
>>>>>>  
>>>>>>   On 2008-01-07, at 15:34 EST, P T Withington wrote:
>>>>>>  
>>>>>>             
>>>>>>>   I agree.
>>>>>>>  
>>>>>>>   I'm just not sure if we need a UserClass (that is a subclass of
>>>>>>>   view) that these classes inherit from, or if they can just
>>>>>>>   directly
>>>>>>>   inherit from view (or some other lfc class).  There is some stuff
>>>>>>>   that happens in UserClass that is different from node.
>>>>>>>  
>>>>>>>   On 2008-01-07, at 15:30 EST, Henry Minsky wrote:
>>>>>>>  
>>>>>>>               
>>>>>>>>   I think the most pragmatic thing to do is to bite the bullet,
>>>>>>>>   so to
>>>>>>>>   speak, and make
>>>>>>>>   the tag compiler emit class { .... } declarations for user-
>>>>>>>>   defined
>>>>>>>>   classes. It seems like
>>>>>>>>   the alternative would be to use our Class.lzs in swf9 for user-
>>>>>>>>   defined classes
>>>>>>>>   at runtime, which seems like it would cause all sorts of
>>>>>>>>   confusion.
>>>>>>>>  
>>>>>>>>  
>>>>>>>>  
>>>>>>>>   --
>>>>>>>>   Henry Minsky
>>>>>>>>   Software Architect
>>>>>>>>   hminsky at laszlosystems.com
>>>>>>>>                 
>>>>>>>  
>>>>>>>               
>>>>>>  
>>>>>>  
>>>>>>             
>>>>>  
>>>>>  
>>>>>  
>>>>>   --
>>>>>   Henry Minsky
>>>>>   Software Architect
>>>>>   hminsky at laszlosystems.com
>>>>>           
>>>>  
>>>>  
>>>>         
>>>  
>>>  
>>>  
>>>   --
>>>   Henry Minsky
>>>   Software Architect
>>>   hminsky at laszlosystems.com
>>>       
>>
>>
>>
>>     
>
>
>
> -- Henry Minsky Software Architect hminsky at laszlosystems.com



More information about the Laszlo-dev mailing list