This approach won't work, cf. the other else-if in applyArgs:
} else if (! this[setr]) {
If pseudo-setters are set to 'null', this else-if block will be executed
instead of the last else-if block.
Maybe changing the structure like so works (untested!):
if (val is LzInitExpr) {
// handle constraints, styles, etc.
} else if (this[setr] === void 0) {
// no setter defined, just set property and notify event system
} else if (this[setr] !== null) {
// setter needs to be called this for property
}
And you shouldn't remove the comments about "applyArgs kludges", they
are used to document "__LZdelayedSetters" *and* earlySetters.
On 1/14/2010 9:01 PM, Max Carlson wrote:
Change 20100113-maxcarlson-h by maxcarl...@bank on 2010-01-13 11:05:24 PST
in /Users/maxcarlson/openlaszlo/trunk-clean
for http://svn.openlaszlo.org/openlaszlo/trunk
Summary: UPDATED: Optimize LzNode
Bugs Fixed: LPP-8716 - Improved LzNode startup time
Technical Reviewer: ptw
QA Reviewer: hminsky
Details: Per Andre's comments, eliminate all references to __LZdelayedSetters.
Per Tucker's comments, change marker for fake setters from -1 to null and add
__LZresolveOtherReferences() method to do layout setting in the right place -
after init, contraints, but _before_ delegates.
LzNode - Check for presence of __LZresolveDict before installing computed
initializations (could save a function call). Explicitly test for read-only
setters in __LZapplyArgs() (testing '!= -1' should be faster than 'is
Function'). In __LZresolveReferences(), install layouts explicitly and comment
out generalized loop, formerly used for backward compatibility (should be much
faster).
Tests: All apps run as before, including smoketest.
Files:
M WEB-INF/lps/lfc/core/LzNode.lzs
M WEB-INF/lps/lfc/views/LaszloView.lzs
M WEB-INF/lps/lfc/views/LaszloCanvas.lzs
Changeset:
http://svn.openlaszlo.org/openlaszlo/patches/20100113-maxcarlson-h.tar
_______________________________________________
Laszlo-reviews mailing list
[email protected]
http://www.openlaszlo.org/mailman/listinfo/laszlo-reviews