Skip to content
Permalink
Browse files

Improve module instantiation/evaluation, especially around errors

This builds on tc39/ecma262#916, in which the
JavaScript specification remembers errors during module instantiation
and evaluation. That allows us to stop our error-prone approach of
doing bottom-up instantiation (which currently fails for cyclic graphs;
see #2629), and obviates the consequent need to propagate errors (which
is also buggy; see #2630). Finally, it makes certain edge cases during
evaluation nicer; see
#2595 (comment).

For background on why we originally went with a bottom-up approach, see
#1545. At the time we didn't seem to believe changing the JavaScript
spec was an option, but since then we've learned that doing so is the
most reasonable way to go.

There may be more work to do here in certain error-related edge cases,
or to make potential optimizations more obvious. But now at least the
setup is implementable and reasonable.

Closes #2629. Closes #2630.
  • Loading branch information...
domenic committed Aug 3, 2017
1 parent e0d4e9e commit 2b408b65a11fe76b6588b744e0ae74d30ff29b43
Showing with 177 additions and 250 deletions.
  1. +177 −250 source

0 comments on commit 2b408b6

Please sign in to comment.
You can’t perform that action at this time.