You can check for the presence of optional arguments using
arguments.length. This is my idiom for giving default values to
optional arguments:
function (arg1, arg2, opt1, opt2, opt3) {
switch (arguments.length) {
case 0: case 1:
Debug.error("Missing required arguments);
case 2:
opt1 = <default>;
case 3:
opt2 = <default>;
case 4:
opt3 = <default>;
}
[This might be a nice language extension, to let you specify the
above idiom by:
function (arg1, arg2, opt1 = <default>, opt2 = <default>, opt3 =
<default>)
]
On 2006-05-08, at 01:55 EDT, Adam Wolff wrote:
> you should declare and initialize your attribute values. I think
> that the
> only case where you can't work around this is when you want to
> create a
> method with an optional argument whose value may be null, zero or the
> empty string.
>
> A
>
> On May 7, Benjamin Shine wrote:
>
>>
>> On May 7, 2006, at 5:47 PM, P T Withington wrote:
>>
>>> Looks good, but what is 'hasAttribute'? Do you mean
>>> hasOwnProperty? (Or
>>> 'in', but we don't permit 'in').
>>>
>>> The idiom we use for testing the existence of a property without
>>> getting a
>>> warning is this['prop'] -- the debugger does not warn on that.
>>
>> I'd been doing that on Emerald, and then Adam Wolff said something
>> disparaging
>> about that idiom. Is hasOwnProperty the right way to do it? Mr
>> Wolff, do you
>> remember your preferred idiom for checking for this case without a
>> debugger
>> warning?
>>
>> I picked up hasAttribute from dojo, and (upon research) it seems
>> to be a DOM
>> thing.
>>
>> I will change to hasOwnProperty.
>>
>>>
>>> But perhaps we should be working on ERROR's first, not
>>> WARNING's. It is not
>>> an error in Javascript to reference a non-existent property, we
>>> only have a
>>> warning to help people debug. Maybe I should make that warning
>>> optional.
>>
>> Stupid linux tricks, aka, ben just learned how to use cut:
>> grep CLIENT_LOG work/logs/lps.log | grep ERROR | cut --delimiter="
>> " -f13 |
>> sort | uniq | wc -l
>> tells me that my particular log (which was just one run of
>> lztest/lztest-simple.lzx)
>> has 85 unique errors
>>
>> grep CLIENT_LOG work/logs/lps.log | grep WARNING | cut --
>> delimiter=" " -f13 |
>> sort | uniq | wc -l
>> reveals 165 unique warnings
>>
>> grep CLIENT_LOG work/logs/lps.log | grep WARNING | cut --
>> delimiter=" " -f13 |
>> cut -d: -f1 | sort -u
>> reveals warnings from 18 files
>>
>> and errors from only 13:
>> grep CLIENT_LOG work/logs/lps.log | grep ERROR | cut --delimiter="
>> " -f13 |
>> cut -d: -f1 | sort -u | wc -l
>>
>> ...which, in case you were wondering, is
>> core/LzClass.as
>> core/LzNode.as
>> core/UserClass.as
>> data/LzDataText.lzs
>> glue/LaszloInitiator.as
>> services/LzFocus.as
>> services/LzFontManager.as
>> services/LzInstantiator.as
>> services/LzKeys.as
>> services/LzModeManager.as
>> views/LaszloCanvas.as
>> views/LaszloView.as
>> views/LzText6.as
>>
>>
>>
>>>
>>> On 2006-05-07, at 17:56 EDT, Benjamin Shine wrote:
>>>
>>>>
>>>> Tucker, I have risen to approximately 1% of your challenge. If
>>>> these fixes
>>>> are in the right vein, I'll keep going.
>>>>
>>>> Change 42100 by [EMAIL PROTECTED] on 2006/05/07 14:49:36
>>>> *pending*
>>>>
>>>> Summary: Eliminating a few warnings in LaszloCanvas.as
>>>> instantiation.
>>>> New Features:
>>>> Bugs Fixed:
>>>> Technical Reviewer: ptw (pending)
>>>> QA Reviewer: frisco (pending)
>>>> Doc Reviewer: (pending)
>>>> Documentation:
>>>> Release Notes:
>>>> Details:
>>>> This change eliminates the following runtime errors and
>>>> warnings,
>>>> when I run
>>>> http://localhost:8087/lps-legals/test/lztest/lztest-simple.lzx?
>>>> debug=true
>>>> 07 May 2006 14:21:26 (127.0.0.1 2) INFO
>>>> responders.ResponderEVAL –
>>>> CLIENT_LOG ERROR: views/LaszloCanvas.as:256: undefined object
>>>> does not
>>>> have a property ‘sendEvent’
>>>> 07 May 2006 14:21:26 (127.0.0.1 1) INFO
>>>> responders.ResponderEVAL –
>>>> CLIENT_LOG WARNING: views/LaszloCanvas.as:256: reference to
>>>> undefined
>>>> property ‘onpercentcreated’
>>>> 07 May 2006 14:21:26 (127.0.0.1 3) INFO
>>>> responders.ResponderEVAL –
>>>> CLIENT_LOG WARNING: views/LaszloCanvas.as:258: reference to
>>>> undefined
>>>> property ‘initdelay’
>>>> 07 May 2006 14:21:26 (127.0.0.1 4) INFO
>>>> responders.ResponderEVAL –
>>>> CLIENT_LOG WARNING: views/LaszloCanvas.as:308: reference to
>>>> undefined
>>>> property ’LZlateinit’
>>>> Tests:
>>>>
>>>> Affected files ...
>>>>
>>>> ... //depot/lps-legals/WEB-INF/lps/lfc/core/LzNode.as#7 edit
>>>> ... //depot/lps-legals/WEB-INF/lps/lfc/views/LaszloCanvas.as#5 edit
>>>> ... //depot/lps-legals/lps/utils/lztestmanager.lzx#2 edit
>>>>
>>>>
>>>> <changeset-42100.zip>
>>>>
>>>> benjamin shine
>>>> software engineer
>>>> [EMAIL PROTECTED]
>>>>
>>>>
>>>>
>>>
>>
>> benjamin shine
>> software engineer
>> [EMAIL PROTECTED]
>>
>>
_______________________________________________
Laszlo-dev mailing list
[email protected]
http://www.openlaszlo.org/mailman/listinfo/laszlo-dev