Commit 43d0b7e7 authored by zhengxing.li's avatar zhengxing.li Committed by Commit bot

X87: [cleanup] Remove dead code from DeclareLookupSlot and rename it.

  port cbc6adc8 (r37111)

  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.

BUG=

Review-Url: https://codereview.chromium.org/2107663002
Cr-Commit-Position: refs/heads/master@{#37317}
parent 4c691429
......@@ -745,14 +745,10 @@ void FullCodeGenerator::VisitVariableDeclaration(
case VariableLocation::LOOKUP: {
Comment cmnt(masm_, "[ VariableDeclaration");
__ push(Immediate(variable->name()));
// VariableDeclaration nodes are always introduced in one of four modes.
DCHECK(IsDeclaredVariableMode(mode));
DCHECK_EQ(VAR, mode);
DCHECK(!hole_init);
__ push(Immediate(Smi::FromInt(0))); // Indicates no initial value.
__ push(
Immediate(Smi::FromInt(variable->DeclarationPropertyAttributes())));
__ CallRuntime(Runtime::kDeclareLookupSlot);
__ push(Immediate(variable->name()));
__ CallRuntime(Runtime::kDeclareEvalVar);
PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
break;
}
......@@ -800,8 +796,7 @@ void FullCodeGenerator::VisitFunctionDeclaration(
Comment cmnt(masm_, "[ FunctionDeclaration");
PushOperand(variable->name());
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