Hi,

A small update here:

On Wed 21 Mar 2012 11:32, Andy Wingo <[email protected]> writes:

> I suggest that we change the users of scope chains (eval, with, and
> function expressions) to receive the scope chain register as a
> parameter.  The compiler already has to handle lazy scope creation, so
> it's just as easy to put the scope in a temporary as it is to put it in
> the callframe.

This doesn't work because we need to be able to tear off block scopes on
an exceptional exit.  So my current strategy will be to add a flag to
codeblocks that push items onto the scope chain, hasLocalScopeChain() or
so.  We'll reserve a register to hold the local scope chain, also stored
in the codeblock.

> The second issue is handling temporal dead zone errors.

I renamed assert_lazy_reg_init to ensure_local_initialized, following
the existing ensure_property_exists.  Errors are now printed more
nicely.  Block-scoped locals are only initialized via init_lazy_reg if
they need the temporal dead zone.

So the current status is that I'm trying to get the runtime to know what
scope objects are pushed locally to an Executable*, and which are
"outer".  This is both for variable access and for exceptional
unwinding.

Hackety hack,

Andy
-- 
http://wingolog.org/
_______________________________________________
squirrelfish-dev mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/squirrelfish-dev

Reply via email to