| Index: src/hydrogen.cc
|
| diff --git a/src/hydrogen.cc b/src/hydrogen.cc
|
| index 7d3f1f32a3875e472d7db3d2d368613de36ef468..513e983129edd44e404471744cf0725363cafa5e 100644
|
| --- a/src/hydrogen.cc
|
| +++ b/src/hydrogen.cc
|
| @@ -5422,7 +5422,9 @@ void HGraphBuilder::HandleCompoundAssignment(Assignment* expr) {
|
| } else {
|
| Handle<AccessorPair> accessors;
|
| Handle<JSObject> holder;
|
| - if (LookupAccessorPair(map, name, &accessors, &holder)) {
|
| + // Because we re-use the load type feedback, there might be no setter.
|
| + if (LookupAccessorPair(map, name, &accessors, &holder) &&
|
| + accessors->setter()->IsJSFunction()) {
|
| store = BuildCallSetter(object, instr, map, accessors, holder);
|
| } else {
|
| CHECK_ALIVE(store = BuildStoreNamedMonomorphic(object,
|
| @@ -7883,7 +7885,9 @@ void HGraphBuilder::VisitCountOperation(CountOperation* expr) {
|
| } else {
|
| Handle<AccessorPair> accessors;
|
| Handle<JSObject> holder;
|
| - if (LookupAccessorPair(map, name, &accessors, &holder)) {
|
| + // Because we re-use the load type feedback, there might be no setter.
|
| + if (LookupAccessorPair(map, name, &accessors, &holder) &&
|
| + accessors->setter()->IsJSFunction()) {
|
| store = BuildCallSetter(object, after, map, accessors, holder);
|
| } else {
|
| CHECK_ALIVE(store = BuildStoreNamedMonomorphic(object,
|
|
|