| Index: runtime/vm/intermediate_language_x64.cc
|
| diff --git a/runtime/vm/intermediate_language_x64.cc b/runtime/vm/intermediate_language_x64.cc
|
| index a7bad0ae93136a7c569365d3d94ff6d3a4c3ca1d..830df847bc4a9f25b94238128a8c2bcbe8c5f3dd 100644
|
| --- a/runtime/vm/intermediate_language_x64.cc
|
| +++ b/runtime/vm/intermediate_language_x64.cc
|
| @@ -6364,22 +6364,19 @@ void ClosureCallInstr::EmitNativeCode(FlowGraphCompiler* compiler) {
|
| __ xorq(RBX, RBX);
|
| __ addq(RCX, Immediate(Instructions::HeaderSize() - kHeapObjectTag));
|
| __ call(RCX);
|
| - compiler->AddCurrentDescriptor(RawPcDescriptors::kClosureCall,
|
| - deopt_id(),
|
| - token_pos());
|
| compiler->RecordSafepoint(locs());
|
| // Marks either the continuation point in unoptimized code or the
|
| // deoptimization point in optimized code, after call.
|
| const intptr_t deopt_id_after = Isolate::ToDeoptAfter(deopt_id());
|
| if (compiler->is_optimizing()) {
|
| compiler->AddDeoptIndexAtCall(deopt_id_after, token_pos());
|
| - } else {
|
| - // Add deoptimization continuation point after the call and before the
|
| - // arguments are removed.
|
| - compiler->AddCurrentDescriptor(RawPcDescriptors::kDeopt,
|
| - deopt_id_after,
|
| - token_pos());
|
| }
|
| + // Add deoptimization continuation point after the call and before the
|
| + // arguments are removed.
|
| + // In optimized code this descriptor is needed for exception handling.
|
| + compiler->AddCurrentDescriptor(RawPcDescriptors::kDeopt,
|
| + deopt_id_after,
|
| + token_pos());
|
| __ Drop(argument_count);
|
| }
|
|
|
|
|