This is currently stated in section 4.2.2 of the draft as:

With one exception, an ECMAScript program that is voluntarily limited to a 
usage subset  and which executes without error under the subset's restrictions 
will behave identically if executed without on any usage subset restrictions. 
The exception is any situation where the operation of such a program depends 
upon the actual occurrence and subsequent handling of additional error 
conditions that are part of the subset.


From: Mark S. Miller [mailto:[EMAIL PROTECTED]
Sent: Wednesday, July 09, 2008 10:48 PM
To: Allen Wirfs-Brock
Cc: Garrett Smith; [email protected]; Herman Venter; Pratap Lakshman 
(VJ#SDK); Douglas Crockford
Subject: Re: Newly revised Section 10 for ES3.1.

On Wed, Jul 9, 2008 at 10:35 PM, Allen Wirfs-Brock <[EMAIL 
PROTECTED]<mailto:[EMAIL PROTECTED]>> wrote:
Every valid proposed ES3.1 cautious subset program is also a valid program in 
the full language.

I don't think it works to restate the "fail stop subset" notion in terms of 
validity. Rather, we can say that an ES3.1 cautious program that runs without 
causing any cautiousness-induced failures will run the same way in the full 
language. Put another way, Given an alleged ES3.1 cautious program, it will

* be statically rejected
* cause a failure by violating a dynamic cautiousness restriction
* execute as it would in the full ES3.1 language.

For example, the following is a perfectly *valid* ES3.1 cautious function:

function isCautious() {
  function foo() {this;}
  try { foo(); } catch (e) { return true; }
  return false;
}

--
Cheers,
--MarkM
_______________________________________________
Es4-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es4-discuss

Reply via email to