Index: src/ast.cc |
diff --git a/src/ast.cc b/src/ast.cc |
index 52990b8feedeb93109e7465913ec746c64b24c6f..107b5408735fde95b19274226ff78dc49988bdf3 100644 |
--- a/src/ast.cc |
+++ b/src/ast.cc |
@@ -103,6 +103,7 @@ VariableProxy::VariableProxy(Isolate* isolate, |
void VariableProxy::BindTo(Variable* var) { |
ASSERT(var_ == NULL); // must be bound only once |
ASSERT(var != NULL); // must bind |
+ ASSERT(!FLAG_harmony_modules || interface_->IsUnified(var->interface())); |
ASSERT((is_this() && var->is_this()) || name_.is_identical_to(var->name())); |
// Ideally CONST-ness should match. However, this is very hard to achieve |
// because we don't know the exact semantics of conflicting (const and |
@@ -1070,16 +1071,14 @@ REGULAR_NODE(CallNew) |
// LOOKUP variables only result from constructs that cannot be inlined anyway. |
REGULAR_NODE(VariableProxy) |
-// We currently do not optimize any modules. Note in particular, that module |
-// instance objects associated with ModuleLiterals are allocated during |
-// scope resolution, and references to them are embedded into the code. |
-// That code may hence neither be cached nor re-compiled. |
+// We currently do not optimize any modules. |
DONT_OPTIMIZE_NODE(ModuleDeclaration) |
DONT_OPTIMIZE_NODE(ImportDeclaration) |
DONT_OPTIMIZE_NODE(ExportDeclaration) |
DONT_OPTIMIZE_NODE(ModuleVariable) |
DONT_OPTIMIZE_NODE(ModulePath) |
DONT_OPTIMIZE_NODE(ModuleUrl) |
+DONT_OPTIMIZE_NODE(ModuleStatement) |
DONT_OPTIMIZE_NODE(WithStatement) |
DONT_OPTIMIZE_NODE(TryCatchStatement) |
DONT_OPTIMIZE_NODE(TryFinallyStatement) |