| 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.
|
|
|