Commit 97ae43ac authored by bjaideep's avatar bjaideep Committed by Commit bot

PPC/s390: [cleanup] Remove dead code from DeclareLookupSlot and rename it

Port cbc6adc8

Original commit message:

    Runtime_DeclareLookupSlot is used when generating code for var and function declarations
    originating in an eval. Over time, it's accumulated quite a bit of cruft, which this CL removes:

      - With legacy const gone, lookup slots never have any property attributes.
      - There was a bit signaling that the variable was from an eval, but that was redundant since
        DeclareLookupSlot is only used for eval.
      - Some Proxy-related code didn't make sense here.

    Its name was also not terribly clear: while "LookupSlot" is used in several places, this
    particular function is only used for declaring variables and functions inside sloppy eval.
    Renamed (and split into two) to make this clear for future archeologists.

    Also added various DCHECKs to check the assumptions being made.

R=adamk@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com

BUG=
LOG=N

Review-Url: https://codereview.chromium.org/2085623003
Cr-Commit-Position: refs/heads/master@{#37117}
parent 8071e21c
......@@ -763,14 +763,11 @@ void FullCodeGenerator::VisitVariableDeclaration(
case VariableLocation::LOOKUP: {
Comment cmnt(masm_, "[ VariableDeclaration");
__ mov(r5, Operand(variable->name()));
// Declaration nodes are always introduced in one of four modes.
DCHECK(IsDeclaredVariableMode(mode));
DCHECK_EQ(VAR, mode);
DCHECK(!hole_init);
__ LoadSmiLiteral(r3, Smi::FromInt(0)); // Indicates no initial value.
__ Push(r5, r3);
__ Push(Smi::FromInt(variable->DeclarationPropertyAttributes()));
__ CallRuntime(Runtime::kDeclareLookupSlot);
__ mov(r5, Operand(variable->name()));
__ Push(r5);
__ CallRuntime(Runtime::kDeclareEvalVar);
PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
break;
}
......@@ -823,8 +820,7 @@ void FullCodeGenerator::VisitFunctionDeclaration(
PushOperand(r5);
// Push initial value for function declaration.
VisitForStackValue(declaration->fun());
PushOperand(Smi::FromInt(variable->DeclarationPropertyAttributes()));
CallRuntimeWithOperands(Runtime::kDeclareLookupSlot);
CallRuntimeWithOperands(Runtime::kDeclareEvalFunction);
PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
break;
}
......
......@@ -741,14 +741,11 @@ void FullCodeGenerator::VisitVariableDeclaration(
case VariableLocation::LOOKUP: {
Comment cmnt(masm_, "[ VariableDeclaration");
__ mov(r4, Operand(variable->name()));
// Declaration nodes are always introduced in one of four modes.
DCHECK(IsDeclaredVariableMode(mode));
DCHECK_EQ(VAR, mode);
DCHECK(!hole_init);
__ LoadSmiLiteral(r2, Smi::FromInt(0)); // Indicates no initial value.
__ Push(r4, r2);
__ Push(Smi::FromInt(variable->DeclarationPropertyAttributes()));
__ CallRuntime(Runtime::kDeclareLookupSlot);
__ mov(r4, Operand(variable->name()));
__ Push(r4);
__ CallRuntime(Runtime::kDeclareEvalVar);
PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
break;
}
......@@ -799,8 +796,7 @@ void FullCodeGenerator::VisitFunctionDeclaration(
PushOperand(r4);
// Push initial value for function declaration.
VisitForStackValue(declaration->fun());
PushOperand(Smi::FromInt(variable->DeclarationPropertyAttributes()));
CallRuntimeWithOperands(Runtime::kDeclareLookupSlot);
CallRuntimeWithOperands(Runtime::kDeclareEvalFunction);
PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
break;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment