return when desugaring to closures

ihab.awad at ihab.awad at
Thu Aug 21 11:45:35 PDT 2008

On Thu, Aug 21, 2008 at 11:24 AM, Mark S. Miller <erights at> wrote:
> When it doesn't work, it doesn't work. But when it does work, it's
> highly worthwhile because it's the closest thing we've got to proper
> lambda abstraction.

... and to *my* mind, the benefit of (defining the semantics as)
desugaring to something well-understood (be it proper lambda
abstraction or otherwise) is that the primitives of the language are
now more amenable to formal -- or even semi-formal -- reasoning.

>From our point of view in trying to build secure JavaScript variants,
what I consider to be a huge breakthrough moment was when MarkM
realized that we can support existing JavaScript patterns (fondly
known as "monkey patching") by essentially desugaring one JavaScript
flavor to another JavaScript flavor, and doing all our security
reasoning about the second flavor.

And I'm harping on security -- and support for clear reasoning this
entails -- because I do believe it is crucial. Our work on the Caja
group is not unique; there are several JavaScript dialects out there
all trying to support the ubiquitous sharing of active content. The
browser's same origin policy no longer works for the brave new world
of social networks; gadgets; content aggregators; active
advertisements; and what not.

"Language as UI" issues are important, yes, but the *most* important
thing is to be very careful and minimalistic about any new foundations
that EcmaScript drives into in the ground -- ones that cannot be built
on top of existing foundations. These have proven to be impossible to
pull up again.


Ihab A.B. Awad, Palo Alto, CA

More information about the Es-discuss mailing list