On Wed, 27 Aug 2008 08:34:03 -0400, Boris Zbarsky <[EMAIL PROTECTED]> wrote:

Michael A. Puls II wrote:
'textContent' takes a DOMString, null is not one

Uh... Except null IS a DOMString according to the DOM specs. Certainly they implicitly treat it as one, and one of the clarifications that WebIDL is making is making it clearer that null is a valid DOMString value.

null is toString()ed to "null" and the textContent becomes "null".

Except that's not what the spec for textContent says to do. Please do read the spec. Carefully.

Yes, understood. Those were just my guesses for reasons why Opera does what it does.

I know Opera differs in these cases compared to Safari and Firefox, but from an ECMAScript point of view, Opera does what I expect.

But it doesn't do what the DOM spec says to do in the textContent case. Sad, but there you are.

Understood.

With that said, if that's a behavior of ECMAScript and the DOM spec clashes, which one gets priority and in what situations and why?

The DOM spec gets priority for methods it defines, just like in all cases of host objects and methods. There are no requirements for those to follow all sorts of rules that native methods and objects have to follow. See the ECMAScript spec.

O.K. Thanks. That clears it up right there.

Although I understand why it might be desired to have null have the same effect as "", it seems odd to be so inconsistent across different things in the DOM and inconsistent with ECMAScript (which exposes the DOM to users, in browsers).

It _is_ odd. But it's an established fact of life, and changing that behavior is not acceptable at this point.

Understood.

Too bad no one brought all this up back when the DOM specs were being written. Or maybe they did, and the non-ECMAScript users of the DOM carried the day on the issue. Again, in other languages the fact that null is a string is much more natural than in ECMAScript.

Yes, too bad.

Thanks


--
Michael

Reply via email to