Index: src/ast/ast.cc |
diff --git a/src/ast/ast.cc b/src/ast/ast.cc |
index e5eb5e55fa0faff5c459600cd176addcd1daddd6..0d937d70dd62dfe1bab61e56ab6803874dea4318 100644 |
--- a/src/ast/ast.cc |
+++ b/src/ast/ast.cc |
@@ -897,7 +897,8 @@ Call::CallType Call::GetCallType() const { |
VariableProxy* proxy = expression()->AsVariableProxy(); |
if (proxy != NULL) { |
if (is_possibly_eval()) { |
- return POSSIBLY_EVAL_CALL; |
+ return proxy->var()->mode() == DYNAMIC ? POSSIBLY_EVAL_THROUGH_WITH_CALL |
+ : POSSIBLY_EVAL_CALL; |
} else if (proxy->var()->IsUnallocated()) { |
return GLOBAL_CALL; |
} else if (proxy->var()->IsLookupSlot()) { |