diff --git a/fxjs/xfa/cjx_eventpseudomodel.cpp b/fxjs/xfa/cjx_eventpseudomodel.cpp
index 4c744f7..d037eb7 100644
--- a/fxjs/xfa/cjx_eventpseudomodel.cpp
+++ b/fxjs/xfa/cjx_eventpseudomodel.cpp
@@ -23,11 +23,10 @@
     *wsValue = pReturn->ToWideString();
     return;
   }
-
   pReturn->SetString(wsValue->ToUTF8().AsStringView());
 }
 
-void InterProperty(CFXJSE_Value* pReturn, int32_t* iValue, bool bSetting) {
+void IntegerProperty(CFXJSE_Value* pReturn, int32_t* iValue, bool bSetting) {
   if (bSetting) {
     *iValue = pReturn->ToInteger();
     return;
@@ -224,7 +223,7 @@
       StringProperty(pValue, &pEventParam->m_wsChange, bSetting);
       break;
     case XFA_Event::CommitKey:
-      InterProperty(pValue, &pEventParam->m_iCommitKey, bSetting);
+      IntegerProperty(pValue, &pEventParam->m_iCommitKey, bSetting);
       break;
     case XFA_Event::FullText:
       StringProperty(pValue, &pEventParam->m_wsFullText, bSetting);
@@ -251,7 +250,7 @@
       BooleanProperty(pValue, &pEventParam->m_bReenter, bSetting);
       break;
     case XFA_Event::SelectionEnd:
-      InterProperty(pValue, &pEventParam->m_iSelEnd, bSetting);
+      IntegerProperty(pValue, &pEventParam->m_iSelEnd, bSetting);
 
       pEventParam->m_iSelEnd = std::max(0, pEventParam->m_iSelEnd);
       pEventParam->m_iSelEnd =
@@ -259,18 +258,15 @@
                    pEventParam->m_wsPrevText.GetLength());
       pEventParam->m_iSelStart =
           std::min(pEventParam->m_iSelStart, pEventParam->m_iSelEnd);
-
       break;
     case XFA_Event::SelectionStart:
-      InterProperty(pValue, &pEventParam->m_iSelStart, bSetting);
-
+      IntegerProperty(pValue, &pEventParam->m_iSelStart, bSetting);
       pEventParam->m_iSelStart = std::max(0, pEventParam->m_iSelStart);
       pEventParam->m_iSelStart =
           std::min(static_cast<size_t>(pEventParam->m_iSelStart),
                    pEventParam->m_wsPrevText.GetLength());
       pEventParam->m_iSelEnd =
           std::max(pEventParam->m_iSelStart, pEventParam->m_iSelEnd);
-
       break;
     case XFA_Event::Shift:
       BooleanProperty(pValue, &pEventParam->m_bShift, bSetting);
