Index: src/arm/full-codegen-arm.cc |
diff --git a/src/arm/full-codegen-arm.cc b/src/arm/full-codegen-arm.cc |
index 497a2954644fa464aaa7a681e7935def89551adc..04c4262a83d48fd0791a7f6fa57590020d6b3253 100644 |
--- a/src/arm/full-codegen-arm.cc |
+++ b/src/arm/full-codegen-arm.cc |
@@ -2200,8 +2200,7 @@ void FullCodeGenerator::EmitCallWithStub(Call* expr, CallFunctionFlags flags) { |
} |
-void FullCodeGenerator::EmitResolvePossiblyDirectEval(ResolveEvalFlag flag, |
- int arg_count) { |
+void FullCodeGenerator::EmitResolvePossiblyDirectEval(int arg_count) { |
// Push copy of the first argument or undefined if it doesn't exist. |
if (arg_count > 0) { |
__ ldr(r1, MemOperand(sp, arg_count * kPointerSize)); |
@@ -2221,9 +2220,7 @@ void FullCodeGenerator::EmitResolvePossiblyDirectEval(ResolveEvalFlag flag, |
__ mov(r1, Operand(Smi::FromInt(strict_mode))); |
__ push(r1); |
- __ CallRuntime(flag == SKIP_CONTEXT_LOOKUP |
- ? Runtime::kResolvePossiblyDirectEvalNoLookup |
- : Runtime::kResolvePossiblyDirectEval, 4); |
+ __ CallRuntime(Runtime::kResolvePossiblyDirectEval, 4); |
} |
@@ -2257,28 +2254,11 @@ void FullCodeGenerator::VisitCall(Call* expr) { |
VisitForStackValue(args->at(i)); |
} |
- // If we know that eval can only be shadowed by eval-introduced |
- // variables we attempt to load the global eval function directly |
- // in generated code. If we succeed, there is no need to perform a |
- // context lookup in the runtime system. |
- Label done; |
- Variable* var = proxy->var(); |
- if (!var->IsUnallocated() && var->mode() == DYNAMIC_GLOBAL) { |
- Label slow; |
- EmitLoadGlobalCheckExtensions(var, NOT_INSIDE_TYPEOF, &slow); |
- // Push the function and resolve eval. |
- __ push(r0); |
- EmitResolvePossiblyDirectEval(SKIP_CONTEXT_LOOKUP, arg_count); |
- __ jmp(&done); |
- __ bind(&slow); |
- } |
- |
// Push a copy of the function (found below the arguments) and |
// resolve eval. |
__ ldr(r1, MemOperand(sp, (arg_count + 1) * kPointerSize)); |
__ push(r1); |
- EmitResolvePossiblyDirectEval(PERFORM_CONTEXT_LOOKUP, arg_count); |
- __ bind(&done); |
+ EmitResolvePossiblyDirectEval(arg_count); |
// The runtime call returns a pair of values in r0 (function) and |
// r1 (receiver). Touch up the stack with the right values. |