W3C home > Mailing lists > Public > public-script-coord@w3.org > October to December 2009

RE: Strategies for standardizing mistakes

From: Allen Wirfs-Brock <Allen.Wirfs-Brock@microsoft.com>
Date: Thu, 15 Oct 2009 21:18:17 +0000
To: Maciej Stachowiak <mjs@apple.com>, Jim Blandy <jimb@mozilla.com>
CC: "Mark S. Miller" <erights@google.com>, "public-script-coord@w3.org" <public-script-coord@w3.org>, Simon Pieters <simonp@opera.com>, "es-discuss Steen" <es-discuss@mozilla.org>
Message-ID: <90EDC335A511F2479C63F7337D3CE7DB704EBC@TK5EX14MBXC116.redmond.corp.microsoft.com>
>-----Original Message-----
>From: es-discuss-bounces@mozilla.org [mailto:es-discuss-
>bounces@mozilla.org] On Behalf Of Maciej Stachowiak
>Sent: Thursday, October 15, 2009 7:23 AM
...
>On Oct 14, 2009, at 5:04 PM, Jim Blandy wrote:
>
...
>>
>> It could just be organizational bias, but reluctant properties
>> strike me as the more bounded form of insanity.
>
>Before you conclude that, let's consider the impact of host object
>properties that return different values based on their syntactic
>context. From the informal operational semantics given form ECMAScript
>syntactic constructs, one might conclude that certain source-to-source
>program transforms are sound, in the sense that they cannot possibly
>alter the behavior of the program. Consider these two functions. I
>will use %EXPR% as a metasyntactic variable, indicating any valid
>JavaScript expression that can appear as the right-hand side of an
>assignment:
>
...

Maciej's thought experiment touches upon the fundamental evil of host objects. In the presence of host objects there is no firm foundation for understanding the semantics of an ECMAScript program. Adding some additional restrictions on host objects only reduces the insanity but doesn't eliminate it.  That's why some of us would like to see ECMAScript semantics expanded so that all of the essential characteristics of Web APIs can be directly expressed in the ECMAScript language without having to use the host object loophole (and would like to set any Web API features that can't be support with rational ES features on the deprecation path).

The argument about which document.all anti-detection semantics most closely complies with the standard's host object exemptions is pointless.  The same scenario could have just as easily come about because IE (or any other browser) added a useful native object and some large group of users adopted it as a form of browser detection.  You'd have the same problem and probably would have arrived at the same solutions but won't have the host objects exemptions to use as defense for the hack.

Death to host objects!!
Allen
Received on Thursday, 15 October 2009 21:18:57 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 8 May 2013 19:30:02 UTC