| Index: src/hydrogen.cc
|
| diff --git a/src/hydrogen.cc b/src/hydrogen.cc
|
| index f9d41910f31edb9f1bbbda6ac22ec0ce5935d1c0..2b999cb768dd2239e69a527c3e50a2f423887992 100644
|
| --- a/src/hydrogen.cc
|
| +++ b/src/hydrogen.cc
|
| @@ -2454,6 +2454,10 @@ HGraph* HGraphBuilder::CreateGraph() {
|
| Bailout("function with illegal redeclaration");
|
| return NULL;
|
| }
|
| + if (scope->calls_eval()) {
|
| + Bailout("function calls eval");
|
| + return NULL;
|
| + }
|
| SetUpScope(scope);
|
|
|
| // Add an edge to the body entry. This is warty: the graph's start
|
| @@ -5936,6 +5940,10 @@ void HGraphBuilder::VisitCall(Call* expr) {
|
| VariableProxy* proxy = expr->expression()->AsVariableProxy();
|
| bool global_call = proxy != NULL && proxy->var()->IsUnallocated();
|
|
|
| + if (proxy != NULL && proxy->var()->is_possibly_eval()) {
|
| + return Bailout("possible direct call to eval");
|
| + }
|
| +
|
| if (global_call) {
|
| Variable* var = proxy->var();
|
| bool known_global_function = false;
|
|
|