Bringing setTimeout to ECMAScript

Peter van der Zee ecma at qfox.nl
Sat Mar 19 03:16:18 PDT 2011


On Sat, Mar 19, 2011 at 1:13 AM, Brendan Eich <brendan at mozilla.com> wrote:

> On Mar 18, 2011, at 5:54 AM, Peter van der Zee wrote:
>
> +1 to standardizing the timer family.
>
> I always thought this wasn't in because the specification didn't have
> any asynchronism and specifying timers would open Pandora's box.
>
>
> How so? I created JS and its run-to-completion execution model and
> setTimeout all at once in 1995. It has not changed in execution-model
> semantics since.
>

I can't think of a single way to simulate setTimeout in ES5. Correct me if
I'm wrong, but I don't think ES5 exposes a single way of defining a
mechanism like:

--
var x = 4;
function f(){ x = 5; print(x); }
timer(f, 1);
print(f);
--

Such that it would output 4 before 5. That's what I meant with "didn't have
any asynchronism", fwiw.

There's no contradiction: programs including those eval'ed by setTimeout (or
> functions passed instead of a string to eval and called later) must and in
> fact *do not* nest or preempt any other executing JS in correct (to this
> approximation) implementations.
>

Ok, I never meant contradiction. Maybe "Pandora's box" should have been "Let
the cat out of the bag" ;) I just never bothered to mention it (introducing
timers) on esdiscuss. Seemed to be such an obvious miss to me that there had
to be an obvious reason.


> The issues with setTimeout have more been about "core langage" vs. "DOM
> level 0", and the lack of a "DOM level 0" standard prior to HTML5.
>

What do you mean by that? Why should that influence the choice of including
it in the ECMA spec? What about embedded environments or ssjs?

- peter
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20110319/20c2a0cb/attachment-0001.html>


More information about the es-discuss mailing list