Not approved.

1) __LZdeleted is LFC-internal, it must not be used in the components

2) strict equality check to avoid string coercion, re-throw error if e !=== '__LZdeleted'!
+    } catch(e) {
+        // Construct may, through many tangled webs of replication and
+        // placement, actually end up deleting us!  Bail out completely.
+        if (e == '__LZdeleted') {
+            return;
+        }
+    }

3) There's an important devnote right before the added "throw('__LZdeleted');":
      // @devnote only add to subnodes if this node is not deleted which
      // may happen as a side-effect of calling determinePlacement().
      // We still need to set 'immediateparent' because legacy constructors
      // expect to see this property.


On 4/21/2010 11:21 PM, Max Carlson wrote:
Change 20100421-maxcarlson-v by maxcarl...@friendly on 2010-04-21 14:09:52 PDT
     in /Users/maxcarlson/openlaszlo/trunk-clean
     for http://svn.openlaszlo.org/openlaszlo/trunk

Summary: Update basecomponent to not set styles, construct() to automatically 
halt for deleted nodes

Bugs Fixed: LPP-8880 - ERROR @lz/textlistitem.lzx?23: TypeError: Error #1009 in 
swf10, LPP-8929 - Prevent construction of destroyed LzNode subclasses

Technical Reviewer: [email protected]
QA Reviewer: ptw

Details: LzNode - Throw an exception when __LZdeleted is true in 
LzNode.construct().

LzInputText, LzText, LaszloView - Remove unneeded __LZdeleted test in 
construct().

textlistitem - Remove unneeded test.

basecomponent - Don't try to set styles for deleted components.

Tests: See LPP-8880, examples/components/component_sampler.lzx?debug=true in 
all runtimes

Files:
M       WEB-INF/lps/lfc/core/LzNode.lzs
M       WEB-INF/lps/lfc/views/LzInputText.lzs
M       WEB-INF/lps/lfc/views/LzText.lzs
M       WEB-INF/lps/lfc/views/LaszloView.lzs
M       lps/components/lz/textlistitem.lzx
M       lps/components/base/basecomponent.lzx

Changeset: 
http://svn.openlaszlo.org/openlaszlo/patches/20100421-maxcarlson-v.tar

Reply via email to