Re: [WebIDL] Would it make sense to add annotations for "creates a new object each time" and "always returns the same object"?

On Mon, Oct 22, 2012 at 10:33 PM, Ojan Vafai <ojan@chromium.org> wrote:
> On Mon, Oct 22, 2012 at 8:08 PM, Boris Zbarsky <bzbarsky@mit.edu> wrote:
>>
>> On 10/22/12 9:24 PM, Ojan Vafai wrote:
>>>
>>> Obviously, there's nothing we can do about legacy APIs, so it might
>>> still make sense to add the annotation even if we decide that methods
>>> should always return a new object.
>>
>> Having methods always return a new object is silly, imo.  Consider a
>> method like getElementById.  How would it make any sense for it to always
>> return a new object?
>
> Good point. That would be silly.

Yes, it seems like functions are very case dependent.

However I agree that attribute getters in general should be returning
the same object. So obj.attr === obj.attr should in general return
true. Though I suspect that there are several cases where changing the
object state will also change what object it returns. So

obj.attr === obj.attr;  // Generally true
x = obj.attr;
obj.someFunc(...);
x === obj.attr;  // Can go either way.

Node.firstChild would be a good example of this.

/ Jonas

Received on Tuesday, 23 October 2012 22:45:37 UTC