| Index: src/full-codegen/ppc/full-codegen-ppc.cc
|
| diff --git a/src/full-codegen/ppc/full-codegen-ppc.cc b/src/full-codegen/ppc/full-codegen-ppc.cc
|
| index 3268820edf9594352cd4cec5922b204e8e332221..212e90d115ff9c5687d3db3b3eb5ee725f8d26cb 100644
|
| --- a/src/full-codegen/ppc/full-codegen-ppc.cc
|
| +++ b/src/full-codegen/ppc/full-codegen-ppc.cc
|
| @@ -3003,8 +3003,15 @@ void FullCodeGenerator::EmitSuperConstructorCall(Call* expr) {
|
| expr->expression()->AsSuperCallReference();
|
| DCHECK_NOT_NULL(super_call_ref);
|
|
|
| - EmitLoadSuperConstructor(super_call_ref);
|
| - __ push(result_register());
|
| + // Push the super constructor target on the stack (may be null,
|
| + // but the Construct builtin can deal with that properly).
|
| + VisitForAccumulatorValue(super_call_ref->this_function_var());
|
| + __ AssertFunction(result_register());
|
| + __ LoadP(result_register(),
|
| + FieldMemOperand(result_register(), HeapObject::kMapOffset));
|
| + __ LoadP(result_register(),
|
| + FieldMemOperand(result_register(), Map::kPrototypeOffset));
|
| + __ Push(result_register());
|
|
|
| // Push the arguments ("left-to-right") on the stack.
|
| ZoneList<Expression*>* args = expr->arguments();
|
|
|