From: Thomas 'PointedEars' Lahn on
Sean Kinsey wrote:

> Thomas 'PointedEars' Lahn wrote:
>> > and which proprietary properties is it misusing?
>>
>> ,-<http://easyxdm.net/wp/>
>> |
>> | [...]
>> | A bi-directional, reliable, secure and queueable Socket class that can
>> | transport strings between domains, using
>> |
>> | * HTML5 postMessage, or
>> | * window.name, or
>> ^^^^^^^^^^^
>> | * hash/fragment
>> ^^^^^^^^^^^^^
> And how exactly does this constitute misuse?

Those properties are not designed to do the things you want them to do.

> And why do you say that they are proprietary properties?

There is no public standard to define them.

> Both window.name and the hash part of the url are standard in the web
> browser,

No, they are not. They have perhaps merely achieved the status of quasi-
standard by now. Still, it would be that quasi-standard status that
provides a basis for the recommendation against that which you are doing.

> and if you are trying to say that setting and getting a
> string property on some object (its not even an expando property) is
> _misuse_, then I do wonder what you consider proper use.

An object has a property designed for a purpose. Storing data in its value
that does not correspond with that purpose obviously constitutes misuse.

>> Your code is also full of common misconceptions like
>>
>> easyXDM.js 2.0.1.77, line 222:
>> | if (name && window.attachEvent) {
>> | // Internet Explorer does not support setting the
>> | // name om DOMElements created in Javascript.
>> | // A workaround is to insert HTML and have the browser parse
>> | // and instantiate the element.
> Again, please explain. It is a fact that IE will not allow you to
> change the name available to the program using Javascript.
> http://msdn.microsoft.com/en-us/library/ms534184(VS.85).aspx

It does not apply to the `name' property of iframe objects.

> And whats with that negative attitude, seriously, talk about anal.

The usual script-kiddie response.

>> I have looked at it, and what you are saying appears to be unlikely.
>> For a start, for this statement to have a chance to become true, he
>> would need to stop using features that are not universally available,
>> and stop misusing proprietary properties of host objects.
>
> This perhaps the most stupid thing I have seen in your latest post.

But it was in my next-to-latest posting instead. Learn to quote.

> So in order to reach some goal (enabling cross domain messaging) I am
> now _not_ allowed to use the only available techniques usable for said
> goal?

You are allowed to do anything stupid. Just do not expect it to work
reliably, or promote it as such, and see yourself as having really
understood what you are doing.

Please change your attitude or go away.


PointedEars
--
realism: HTML 4.01 Strict
evangelism: XHTML 1.0 Strict
madness: XHTML 1.1 as application/xhtml+xml
-- Bjoern Hoehrmann
From: Asen Bozhilov on
Thomas 'PointedEars' Lahn wrote:
> Asen Bozhilov wrote:

> > If in older versions they skip implement internal [[Get]] of host object,
>
> They cannot skip implementing it; they can only implement it differently.

That is correct regarding ECMA-262 standard, but IE doesn't follow
that point. There are examples with host objects, which don't have
internal [[Get]] method.

e.g.

try {
new ActiveXObject('Microsoft.XMLHTTP').open;
}catch(e) {
window.alert(e instanceof TypeError); //true
}


From: Thomas 'PointedEars' Lahn on
Asen Bozhilov wrote:

> Thomas 'PointedEars' Lahn wrote:
>> Asen Bozhilov wrote:
>> > If in older versions they skip implement internal [[Get]] of host
>> > object,
>> They cannot skip implementing it; they can only implement it
>> differently.
>
> That is correct regarding ECMA-262 standard, but IE doesn't follow
> that point. There are examples with host objects, which don't have
> internal [[Get]] method.

You are mistaken.

> e.g.
>
> try {
> new ActiveXObject('Microsoft.XMLHTTP').open;
> }catch(e) {
> window.alert(e instanceof TypeError); //true
> }

Your example does not support your argument. Implementing a method
differently than specified includes throwing any exception when it is
called.


PointedEars
--
realism: HTML 4.01 Strict
evangelism: XHTML 1.0 Strict
madness: XHTML 1.1 as application/xhtml+xml
-- Bjoern Hoehrmann
From: Sean Kinsey on

> Those properties are not designed to do the things you want them to do.
That might be, but the hammer, designed to hit nails, still work
perfectly for breaking tiles as it makes use of the primary property
of the hammer, the ability to build up, store, and transfer kinetic
energy.
>
> > And why do you say that they are proprietary properties?
>
> There is no public standard to define them.
>
> > Both window.name and the hash part of the url are standard in the web
> > browser,
>
> No, they are not.  They have perhaps merely achieved the status of quasi-
> standard by now.  Still, it would be that quasi-standard status that
> provides a basis for the recommendation against that which you are doing.
OK, fine, I'm not an expert on the spec, but I do know that those
features _are_ indeed available in all the target browsers (that being
IE6/IE7).
And before you start on my potential lack of support for other
browsers not implementing the newer postMessage interface; this is a
choice made on the assumption that those using 'other' browsers than
IE6/7 are capable people who do update their software.

> An object has a property designed for a purpose.  Storing data in its value
> that does not correspond with that purpose obviously constitutes misuse.
Misuse with regard to its intention maybe, but not a use that brings
any negative effect. Again, the hammer and the nail.

> It does not apply to the `name' property of iframe objects.
Earlier tests showed that it did (and there are many references to it
on the internet), but I'll retest as many things has changed in the
library since that piece of code was written.
> The usual script-kiddie response.
No, that is the response of a pragmatist.

>
> >> I have looked at it, and what you are saying appears to be unlikely.
> >> For a start, for this statement to have a chance to become true, he
> >> would need to stop using features that are not universally available,
> >> and stop misusing proprietary properties of host objects.
>
> > This perhaps the most stupid thing I have seen in your latest post.
>
> But it was in my next-to-latest posting instead.  Learn to quote.
Will do

>
> > So in order to reach some goal (enabling cross domain messaging) I am
> > now _not_ allowed to use the only available techniques usable for said
> > goal?
>
> You are allowed to do anything stupid.  Just do not expect it to work
> reliably, or promote it as such, and see yourself as having really
> understood what you are doing.
Well I do expect it to work reliably on all the target browser, in
fact, its an observable truth that it _does_ work in the target
browsers.
From: Thomas 'PointedEars' Lahn on
Sean Kinsey wrote:

> Asen Bozhilov wrote:
>> Thomas 'PointedEars' Lahn wrote:
>> > easyXDM.js 2.0.1.77, line 222:
>> > | if (name && window.attachEvent) {
>>
>> ^^^^^^^^^^^^^^^^^^
>> And that work properly in older versions of IE? If in older versions
>> they skip implement internal [[Get]] of host object, which refer
>> `attachEvent', that code will throw TypeError.
>
> Sorry for my simple browser detection, I'll make sure to introduce
> more bloat as to properly support IE2 etc.

Argument at ridicule. If you knew what you are talking about, you would
know that IE 2 did not support scripting to begin with; JScript 1.0 was
introduced with version 3.0. You would know that it is not so much a
matter of IE as of MSHTML, and that host objects are so special that, as
Lasse Reichstein Nielsen once put it so aptly here, "with host objects, all
bets are off."

> But seriously, I do appreciate the feedback,

No, unfortunately you don't. Or you would have reacted very differently.

> but maybe a bit more pragmatic approach would be better suited?

Yes, it would. Why do you keep living in and designing for a fantasy world
instead?


PointedEars
--
Danny Goodman's books are out of date and teach practices that are
positively harmful for cross-browser scripting.
-- Richard Cornford, cljs, <cife6q$253$1$8300dec7(a)news.demon.co.uk> (2004)