equal
deleted
inserted
replaced
53 uncommon_trap(Deoptimization::Reason_unhandled, |
53 uncommon_trap(Deoptimization::Reason_unhandled, |
54 Deoptimization::Action_none); |
54 Deoptimization::Action_none); |
55 return; |
55 return; |
56 } |
56 } |
57 |
57 |
58 // Deoptimize on putfield writes to call site target field. |
58 // Deoptimize on putfield writes to call site target field outside of CallSite ctor. |
59 if (!is_get && field->is_call_site_target()) { |
59 if (!is_get && field->is_call_site_target() && |
|
60 !(method()->holder() == field_holder && method()->is_object_initializer())) { |
60 uncommon_trap(Deoptimization::Reason_unhandled, |
61 uncommon_trap(Deoptimization::Reason_unhandled, |
61 Deoptimization::Action_reinterpret, |
62 Deoptimization::Action_reinterpret, |
62 NULL, "put to call site target field"); |
63 NULL, "put to call site target field"); |
63 return; |
64 return; |
64 } |
65 } |