[Laszlo-dev] [Laszlo-checkins] r5910 - in, openlaszlo/branches/wafflecone/WEB-INF/lps/lfc: core events services

André Bargull a.bargull at intensis.de
Fri Aug 3 00:18:17 PDT 2007


As of OL-4.0.3, "constructWithArgs" is also used in "LzLayout.lzs".
Also see: LPP-4055 - "constructWithArgs defined twice in LzNode.lzs".

Max Carlson wrote:

> I grepped the entire source tree (with diamond) and didn't find any 
> calls to super.constructWithArgs(). The only declaration is in 
> WEB-INF/lps/lfc/data/LzReplicationManager.lzs: /** * @access private 
> */ function constructWithArgs ( args ){ this.__LZHandleMultiNodes( 
> this.initialnodes ); delete this.initialnodes; if ( this.visible == 
> false ){ this.setVisible( false ); } } P T Withington wrote:
>> > I'm concerned about the change to constructWithArgs.  Since this is a 
>> > defined method, there could be overrides out there that will attempt to 
>> > call super from their method -- that will bomb now.  If you want to 
>> > avoid this call, then you could say:
>> > 
>> >   if (this.constructWithArgs !== LzNode.prototype.constructWithArgs) {
>> >     this.constructWithArgs(parent, args);
>> >   }
>> > 
>> > and not remove the default method.
>> > 
>> > On 2007-08-02, at 13:18 EDT, max at openlaszlo.org wrote:
>> > 
>>     
>>> >> Author: max
>>> >> Date: 2007-08-02 10:18:46 -0700 (Thu, 02 Aug 2007)
>>> >> New Revision: 5910
>>> >>
>>> >> Modified:
>>> >>    openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/core/LzNode.lzs
>>> >>    openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/events/LaszloEvents.lzs
>>> >>    openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/services/LzCSSStyle.js
>>> >> Log:
>>> >>  20070801-maxcarlson-V by maxcarlson at plastik on 2007-08-01 20:51:00 PDT
>>> >>     in /Users/maxcarlson/openlaszlo/wafflecone
>>> >>     for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone
>>> >>
>>> >> Summary: More optimization of LFC
>>> >>
>>> >> New Features:
>>> >>
>>> >> Bugs Fixed: LPP-4414 - Improve startup performance (partial)
>>> >>
>>> >> Technical Reviewer: promanik
>>> >> QA Reviewer: ben
>>> >> Doc Reviewer: (pending)
>>> >>
>>> >> Documentation:
>>> >>
>>> >> Release Notes:
>>> >>
>>> >> Details: LzCSSStyle.js - Cache getPropertyValueFor() calls.  Only call 
>>> >> _selectorApplies() for compound css statements.
>>> >>
>>> >> LzNode.lzs - Only call constructWithArgs() if it exists.
>>> >>
>>> >> LaszloEvents.lzs - Check for null reference.
>>> >>
>>> >>
>>> >> Tests: ...silver/main.lzx?lzr=dhtml&lzt=html shows ~24029 fewer total 
>>> >> calls (252524 total before, 228495 now).  
>>> >> http://localhost:8080/wafflecone/test/style/constraints/main.lzx?lzr=swf8 
>>> >> passes as before, shows 405ms for lookup test.
>>> >>
>>> >>
>>> >>
>>> >> Modified: openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/core/LzNode.lzs
>>> >> ===================================================================
>>> >> --- openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/core/LzNode.lzs    
>>> >> 2007-08-02 16:46:55 UTC (rev 5909)
>>> >> +++ openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/core/LzNode.lzs    
>>> >> 2007-08-02 17:18:46 UTC (rev 5910)
>>> >> @@ -180,7 +180,11 @@
>>> >>              this.__LZstyleConstraints = this.__LZapplyStyleMap( 
>>> >> styleMap, attrs );
>>> >>          }
>>> >>
>>> >> -        this.constructWithArgs( maskedargs );
>>> >> +        /**
>>> >> +          * @todo 2006-05-24 ptw Adam says this is a hack that we 
>>> >> should get
>>> >> +          * rid of.
>>> >> +          */
>>> >> +        if (this.constructWithArgs) this.constructWithArgs( 
>>> >> maskedargs );
>>> >>
>>> >>          delete this.__LZdeferDelegates;
>>> >>          if (qpos != LzDelegate.__LZdelegatesQueue.length) {
>>> >> @@ -641,13 +645,6 @@
>>> >>  }
>>> >>
>>> >>  /**
>>> >> -  * @access private
>>> >> -  * @todo 2006-05-24 ptw Adam says this is a hack that we should get
>>> >> -  * rid of.
>>> >> -  */
>>> >> -function constructWithArgs ( parent , args ){}
>>> >> -
>>> >> -/**
>>> >>    * Called at the same time that the node sends its oninit event -- 
>>> >> usually
>>> >>    * when the node's siblings are instantiated, and always after the 
>>> >> node's
>>> >>    * children are instantiated.
>>> >> @@ -1967,10 +1964,4 @@
>>> >>    this.makeChild( dpobj , true);
>>> >>  }
>>> >>
>>> >> -
>>> >> -/**
>>> >> -  * @access private
>>> >> -  */
>>> >> -function constructWithArgs ( parent , args ){}
>>> >> -
>>> >>  } // End of LzNode
>>> >>
>>> >> Modified: 
>>> >> openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/events/LaszloEvents.lzs
>>> >> ===================================================================
>>> >> --- 
>>> >> openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/events/LaszloEvents.lzs    
>>> >> 2007-08-02 16:46:55 UTC (rev 5909)
>>> >> +++ 
>>> >> openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/events/LaszloEvents.lzs    
>>> >> 2007-08-02 17:18:46 UTC (rev 5910)
>>> >> @@ -215,7 +215,7 @@
>>> >>        }
>>> >>        */
>>> >>        // d.execute( sd ); inlined
>>> >> -      d.c[d.f]( sd );
>>> >> +      if (d.c[d.f]) d.c[d.f]( sd );
>>> >>        i+=2;
>>> >>      }
>>> >>      evq.length = pos;
>>> >>
>>> >> Modified: 
>>> >> openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/services/LzCSSStyle.js
>>> >> ===================================================================
>>> >> --- 
>>> >> openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/services/LzCSSStyle.js    
>>> >> 2007-08-02 16:46:55 UTC (rev 5909)
>>> >> +++ 
>>> >> openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/services/LzCSSStyle.js    
>>> >> 2007-08-02 17:18:46 UTC (rev 5910)
>>> >> @@ -70,6 +70,7 @@
>>> >>      return 1 ;
>>> >>  }
>>> >>
>>> >> +LzCSSStyleRule.prototype.__pvcache = {};
>>> >>
>>> >>  var LzCSSStyle = {};
>>> >>
>>> >> @@ -90,6 +91,8 @@
>>> >>      //var t = getTimer();
>>> >>      if (!node) return;
>>> >>      var uid = node.getUID();
>>> >> +    var val = LzCSSStyleRule.prototype.__pvcache[uid + pname];
>>> >> +    if (val) return val;
>>> >>      var rules = this.__LZRuleCache[ uid ];
>>> >>      if ( !rules ) {
>>> >>          rules = new Array();
>>> >> @@ -102,7 +105,7 @@
>>> >>                   (rp.type == 3 && (((rp.classname in lz) && (node 
>>> >> instanceof lz[ rp.classname ])) || ( (rp.classname in global) && (node 
>>> >> instanceof global[ rp.classname ])))) ||
>>> >>                   (rp.type == 5 && node[ rp.attrname ] == 
>>> >> rp.attrvalue) ||
>>> >>                   (rp.type == 6 && node[ rp.attrname ] == rp.attrvalue 
>>> >> && (((rp.classname in lz) && (node instanceof lz[ rp.classname ])) || 
>>> >> ( (rp.classname in global) && (node instanceof global[ rp.classname 
>>> >> ])))) ||
>>> >> -                 this._selectorApplies( r, rp, node ) ){
>>> >> +                 (rp.type == 4 && this._selectorApplies( r, rp, node 
>>> >> ))){
>>> >>                  rules.push(r);
>>> >>              }
>>> >>          }
>>> >> @@ -124,7 +127,7 @@
>>> >>                   (rp.type == 3 && (((rp.classname in lz) && (node 
>>> >> instanceof lz[ rp.classname ])) || ( (rp.classname in global) && (node 
>>> >> instanceof global[ rp.classname ])))) ||
>>> >>                   (rp.type == 5 && node[ rp.attrname ] == 
>>> >> rp.attrvalue) ||
>>> >>                   (rp.type == 6 && node[ rp.attrname ] == rp.attrvalue 
>>> >> && (((rp.classname in lz) && (node instanceof lz[ rp.classname ])) || 
>>> >> ( (rp.classname in global) && (node instanceof global[ rp.classname 
>>> >> ])))) ||
>>> >> -                 this._selectorApplies( r, rp, node ) ){
>>> >> +                 (rp.type == 4 && this._selectorApplies( r, rp, node 
>>> >> ))){
>>> >>                      rules.push(r);
>>> >>                  }
>>> >>              }
>>> >> @@ -148,7 +151,11 @@
>>> >>      var i = 0;
>>> >>      while ( i < l ) {
>>> >>          var props = rules[i++].properties;
>>> >> -        if (pname in props) { return props[pname]; }
>>> >> +        if (pname in props) {
>>> >> +            var v = props[pname];
>>> >> +            LzCSSStyleRule.prototype.__pvcache[uid + pname] = v
>>> >> +            return v;
>>> >> +        }
>>> >>      }
>>> >>
>>> >>      ////this.time1 += getTimer() - t;
>>> >> @@ -316,7 +323,7 @@
>>> >>                                  (inrp.type == 3 && (((inrp.classname 
>>> >> in lz) && (icurnode instanceof lz[ inrp.classname ])) || ( 
>>> >> (inrp.classname in global) && (icurnode instanceof global[ 
>>> >> inrp.classname ])))) ||
>>> >>                                  (inrp.type == 5 && icurnode[ 
>>> >> inrp.attrname ] == inrp.attrvalue) ||
>>> >>                                  (inrp.type == 6 && icurnode[ 
>>> >> inrp.attrname ] == inrp.attrvalue && (((inrp.classname in lz) && 
>>> >> (icurnode instanceof lz[ inrp.classname ])) || ( (inrp.classname in 
>>> >> global) && (icurnode instanceof global[ inrp.classname ])))) ||
>>> >> -                                this._selectorApplies( rule, inrp, 
>>> >> icurnode )){
>>> >> +                                (inrp.type == 4 && 
>>> >> this._selectorApplies( rule, inrp, icurnode ))){
>>> >>                                  if ( sindex-- == 0 ){
>>> >>                                      iresult = true;
>>> >>                                      break;
>>> >>
>>> >>
>>> >> _______________________________________________
>>> >> Laszlo-checkins mailing list
>>> >> Laszlo-checkins at openlaszlo.org
>>> >> http://www.openlaszlo.org/mailman/listinfo/laszlo-checkins
>>>       
>> > 
>>     
>
> -- Regards, Max Carlson OpenLaszlo.org
-- 
Mit freundlichen Grüßen,

André Bargull


Intensis
Lösungen für Informationslogistik

Tel.:   +49 231 5522-900
Fax:    +49 231 5522-901
E-Mail: a.bargull at intensis.de
_________________________________
Intensis GmbH
Ruhrallee 9
44139 Dortmund

Amtsgericht Dortmund:
HRB 15547

Geschäftsführer:
Holger Schmitt



More information about the Laszlo-dev mailing list