X87: Classes: Add super support in methods and accessors
port r24976. original commit message: Classes: Add super support in methods and accessors This is done by installing the [[HomeObject]] on the method and the accessor functions. BUG= R=weiliang.lin@intel.com Review URL: https://codereview.chromium.org/687273005 Patch from Chunyang Dai <chunyang.dai@intel.com>. Cr-Commit-Position: refs/heads/master@{#24999} git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24999 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
b975522272
commit
b4981c69f1
@ -2431,29 +2431,22 @@ void FullCodeGenerator::EmitClassDefineProperties(ClassLiteral* lit) {
|
||||
__ push(Operand(esp, 0)); // prototype
|
||||
}
|
||||
VisitForStackValue(key);
|
||||
VisitForStackValue(value);
|
||||
|
||||
switch (property->kind()) {
|
||||
case ObjectLiteral::Property::CONSTANT:
|
||||
case ObjectLiteral::Property::MATERIALIZED_LITERAL:
|
||||
case ObjectLiteral::Property::COMPUTED:
|
||||
case ObjectLiteral::Property::PROTOTYPE:
|
||||
VisitForStackValue(value);
|
||||
__ push(Immediate(Smi::FromInt(NONE)));
|
||||
__ CallRuntime(Runtime::kDefineDataPropertyUnchecked, 4);
|
||||
__ CallRuntime(Runtime::kDefineClassMethod, 3);
|
||||
break;
|
||||
|
||||
case ObjectLiteral::Property::GETTER:
|
||||
VisitForStackValue(value);
|
||||
__ push(Immediate(isolate()->factory()->null_value()));
|
||||
__ push(Immediate(Smi::FromInt(NONE)));
|
||||
__ CallRuntime(Runtime::kDefineAccessorPropertyUnchecked, 5);
|
||||
__ CallRuntime(Runtime::kDefineClassGetter, 3);
|
||||
break;
|
||||
|
||||
case ObjectLiteral::Property::SETTER:
|
||||
__ push(Immediate(isolate()->factory()->null_value()));
|
||||
VisitForStackValue(value);
|
||||
__ push(Immediate(Smi::FromInt(NONE)));
|
||||
__ CallRuntime(Runtime::kDefineAccessorPropertyUnchecked, 5);
|
||||
__ CallRuntime(Runtime::kDefineClassSetter, 3);
|
||||
break;
|
||||
|
||||
default:
|
||||
|
Loading…
Reference in New Issue
Block a user