Basic interface inference for modules.
authorrossberg@chromium.org <rossberg@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Thu, 8 Mar 2012 13:03:07 +0000 (13:03 +0000)
committerrossberg@chromium.org <rossberg@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Thu, 8 Mar 2012 13:03:07 +0000 (13:03 +0000)
commit448b620dad4d287e415c1188909706c8ad29a7a2
tree7649fcb1ed5d4d26cdad9e9384bd7e99eadd2490
parent1d89a176ec9f51231aff3d6a5212df37ff8485f5
Basic interface inference for modules.

All module expressions, and all variables that might refer to modules,
are assigned interfaces (module types) that are resolved using
unification. This is necessary to deal with the highly recursive
nature of ES6 modules, which does not allow any kind of bottom-up
strategy for resolving module names and paths.

Error messages are rudimental right now. Probably need to track
more information to make them nicer.

R=svenpanne@chromium.org
BUG=v8:1569
TEST=

Review URL: https://chromiumcodereview.appspot.com/9615009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10966 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
16 files changed:
src/SConscript
src/ast.cc
src/ast.h
src/flag-definitions.h
src/interface.cc [new file with mode: 0644]
src/interface.h [new file with mode: 0644]
src/messages.js
src/parser.cc
src/parser.h
src/scopes.cc
src/scopes.h
src/variables.cc
src/variables.h
test/mjsunit/harmony/module-parsing.js
test/mjsunit/harmony/module-resolution.js [new file with mode: 0644]
tools/gyp/v8.gyp