| Index: src/x87/builtins-x87.cc
|
| diff --git a/src/x87/builtins-x87.cc b/src/x87/builtins-x87.cc
|
| index a3ef9f1e8fdf920369ba984aef5024542d724a50..1e45a7775dee3e7da79ed29f22c69bc19df187ea 100644
|
| --- a/src/x87/builtins-x87.cc
|
| +++ b/src/x87/builtins-x87.cc
|
| @@ -410,6 +410,13 @@ void Builtins::Generate_JSBuiltinsConstructStub(MacroAssembler* masm) {
|
| }
|
|
|
|
|
| +void Builtins::Generate_ConstructedNonConstructable(MacroAssembler* masm) {
|
| + FrameScope scope(masm, StackFrame::INTERNAL);
|
| + __ push(edi);
|
| + __ CallRuntime(Runtime::kThrowConstructedNonConstructable, 1);
|
| +}
|
| +
|
| +
|
| enum IsTagged { kEaxIsSmiTagged, kEaxIsUntaggedInt };
|
|
|
|
|
| @@ -1543,7 +1550,8 @@ void Builtins::Generate_CallFunction(MacroAssembler* masm,
|
| __ bind(&class_constructor);
|
| {
|
| FrameScope frame(masm, StackFrame::INTERNAL);
|
| - __ CallRuntime(Runtime::kThrowConstructorNonCallableError, 0);
|
| + __ push(edi);
|
| + __ CallRuntime(Runtime::kThrowConstructorNonCallableError, 1);
|
| }
|
| }
|
|
|
| @@ -1670,11 +1678,8 @@ void Builtins::Generate_Construct(MacroAssembler* masm) {
|
| // Called Construct on an Object that doesn't have a [[Construct]] internal
|
| // method.
|
| __ bind(&non_constructor);
|
| - {
|
| - FrameScope scope(masm, StackFrame::INTERNAL);
|
| - __ Push(edi);
|
| - __ CallRuntime(Runtime::kThrowCalledNonCallable, 1);
|
| - }
|
| + __ Jump(masm->isolate()->builtins()->ConstructedNonConstructable(),
|
| + RelocInfo::CODE_TARGET);
|
| }
|
|
|
|
|
|
|