code: function executeArrayMutation(state, payload, action, PROP_SUBPROP, conf) {
      var newValue, pathWithIds;
      if (!PROP_SUBPROP.includes('*')) {
          newValue = payload;
          pathWithIds = PROP_SUBPROP;
      }
      else {
          if (!isWhat.isArray(payload) && action !== 'splice')
              payload = [payload];
          if (action !== 'pop' && action !== 'shift')
              newValue = payload.pop();
          var ids = getIdsFromPayload(payload, conf, PROP_SUBPROP);
          if (!checkIdWildcardRatio(ids, PROP_SUBPROP, conf))
              return;
          pathWithIds = fillinPathWildcards(ids, PROP_SUBPROP, state, conf);
      }
      if (action === 'push') {
          return pushDeepValue(state, pathWithIds, newValue);
      }
      if (action === 'pop') {
          return popDeepValue(state, pathWithIds);
      }
      if (action === 'shift') {
          return shiftDeepValue(state, pathWithIds);
      }
      if (action === 'splice') {
          var index = newValue[0];
          var deleteCount = newValue[1];
          var value = newValue[2];
          return spliceDeepValue(state, pathWithIds, index, deleteCount, value);
      }
  }
docs: execute mutation