The test case is in the data test

test/lfc/data/alldata.lzx

in the file
datapointerdependencies.lzx
where it calls

            nen.setAttribute( 'nodeName' , "bar" );

The setters field is undefined at that point on the element pointed to by nen



On 8/21/06, P T Withington <[EMAIL PROTECTED]> wrote:
Hm.  What is your test case?  I'll take a look.

On 2006-08-21, at 08:54 EDT, Henry Minsky wrote:

> Actually the 'setters' property itself  is undefined...
>
>
> On 8/21/06, P T Withington < [EMAIL PROTECTED]> wrote:
>>
>> What is the value of nen.setters.setNodeName at the call site?
>>
>>
>> On 2006-08-21, at 00:52 EDT, Henry Minsky wrote:
>>
>> > So there's been this one test failing in the data test suite for a
>> > long time
>> > , and I finally tracked it down to
>> > what seems to be this problem; the setter function (setNodename)
>> > for  the
>> > "nodeName" attribute does not seem to be getting called
>> > on LzDataElement
>> >
>> >
>> > In the test case this line of code
>> >
>> >      nen.setAttribute( 'nodeName' , "bar" );
>> >
>> > doesn't call the setNodeName setter on LzDataElement. It does
>> > directly set
>> > the nodeName property though.
>> >
>> > But  if I replace the call above with this line which calls the
>> setter
>> > directly, then everything  works (i.e., some other
>> > important events are sent by the setter function)
>> >            nen.setNodeName( "bar" );
>> >
>> > So, the question is why isn't this setter getting dispatched to by
>> > setAttribute. I haven't gotten that far yet, but
>> > I wonder if it has something to do with LzDataElement being defined
>> > by a
>> > trait.
>> > The trait is defined in LzDataElement.lzs with an initializer like
>> > this
>> >
>> > LzDataElementTrait = Trait.make(
>> >    "LzDataElementTrait",
>> >    null,
>> >    // N.B.: LzDataElementTrait may or may not be an LzNode, so
>> >    // _if_ it were to have an initialize method, it would have to
>> >    // match LzNode.initialize's signature.
>> >    null,
>> >    function LzDataElementTraitInitialize (prototype) {
>> >      // There will be no setters property in the trait prototype,
>> >      // (and you don't want one there! as it would shadow the one
>> >      // from LzNode) but it will be there after LzNode.initialize
>> >      // runs
>> >      if (prototype.hasOwnProperty('setters')) {
>> >        // since you can't assign directly to these slots...
>> >        // until LzNode.initialize has run
>> >        prototype.setters.attributes = "setAttrs";
>> >        prototype.setters.childNodes = "setChildNodes";
>> >        prototype.setters.nodeName = "setNodeName";
>> >        // Shouldn't be directliy settable
>> >        prototype.setters.ownerDocument = "setOwnerDocument";
>> >      }
>> >    }
>> >    );
>> >
>> >
>> > Maybe there's something wrong with the way this is trying to add
>> > setters?
>> >
>> >
>> > --
>> > Henry Minsky
>> > Software Architect
>> > [EMAIL PROTECTED]
>>
>>
>
>
> --
> Henry Minsky
> Software Architect
> [EMAIL PROTECTED]




--
Henry Minsky
Software Architect
[EMAIL PROTECTED]

_______________________________________________
Laszlo-dev mailing list
[email protected]
http://www.openlaszlo.org/mailman/listinfo/laszlo-dev

Reply via email to