Strip Interface class of most of its logic, make it all about Module exports
authoradamk <adamk@chromium.org>
Tue, 17 Feb 2015 20:51:24 +0000 (12:51 -0800)
committerCommit bot <commit-bot@chromium.org>
Tue, 17 Feb 2015 20:51:35 +0000 (20:51 +0000)
commit522937cb494559d209bc53d8251458f33b4e9864
tree40d7b32b40e7bfb6c34e0ba8882868730838326b
parent97a4a21a6acfd77bbdf2b027bfa5c459b54acbdd
Strip Interface class of most of its logic, make it all about Module exports

This gets Variable and VariableProxy out of the business of worrying about
Interfaces.

At the same time, get rid of the notion of "module variables". In ES6, variables
that refer to modules will be simply be CONST bindings to module namespace
objects.

The only change in logic here is one more early error:
duplicate export names are now rejected.

BUG=v8:1569
LOG=n

Review URL: https://codereview.chromium.org/918373002

Cr-Commit-Position: refs/heads/master@{#26708}
33 files changed:
src/arm/full-codegen-arm.cc
src/arm64/full-codegen-arm64.cc
src/ast-numbering.cc
src/ast.cc
src/ast.h
src/compiler/ast-graph-builder.cc
src/compiler/ast-loop-assignment-analyzer.cc
src/contexts.cc
src/full-codegen.cc
src/globals.h
src/hydrogen.cc
src/ia32/full-codegen-ia32.cc
src/interface.cc
src/interface.h
src/messages.js
src/mips/full-codegen-mips.cc
src/mips64/full-codegen-mips64.cc
src/parser.cc
src/parser.h
src/ppc/full-codegen-ppc.cc
src/prettyprinter.cc
src/rewriter.cc
src/runtime/runtime-scopes.cc
src/scopeinfo.cc
src/scopeinfo.h
src/scopes.cc
src/scopes.h
src/typing.cc
src/variables.cc
src/variables.h
src/x64/full-codegen-x64.cc
src/x87/full-codegen-x87.cc
test/cctest/test-parsing.cc