| LEFT | RIGHT |
| 1 | 1 |
| 2 TARGET(INPLACE_ADD) | 2 TARGET(INPLACE_ADD) |
| 3 w = POP(); | 3 w = POP(); |
| 4 v = TOP(); | 4 v = TOP(); |
| 5 if (PyUnicode_CheckExact(v) && | 5 if (PyUnicode_CheckExact(v) && |
| 6 PyUnicode_CheckExact(w)) { | 6 PyUnicode_CheckExact(w)) { |
| 7 PyEval_SetCurInstr(INCA_ADD_STRINGS, 0); | 7 PyEval_SetCurInstr(INCA_ADD_STRINGS, 0); |
| 8 x = unicode_concatenate(v, w, f, next_instr); | 8 x = unicode_concatenate(v, w, f, next_instr); |
| 9 /* unicode_concatenate consumed the ref to v */ | 9 /* unicode_concatenate consumed the ref to v */ |
| 10 goto skip_decref_v; | 10 goto skip_decref_v; |
| 11 } | 11 } |
| 12 else { | 12 else { |
| 13 x = PyNumber_InPlaceAdd(v, w); | 13 x = PyNumber_InPlaceAdd(v, w); |
| 14 } | 14 } |
| 15 Py_DECREF(v); | 15 Py_DECREF(v); |
| 16 skip_decref_v: | 16 skip_decref_v: |
| 17 Py_DECREF(w); | 17 Py_DECREF(w); |
| 18 SET_TOP(x); | 18 SET_TOP(x); |
| 19 if (x != NULL) DISPATCH(); | 19 if (x != NULL) DISPATCH(); |
| 20 goto on_error;; | 20 goto on_error;; |
| 21 | 21 |
| LEFT | RIGHT |