diff --git a/fxjs/xfa/cjx_boolean.h b/fxjs/xfa/cjx_boolean.h
index 0945913..8e90d62 100644
--- a/fxjs/xfa/cjx_boolean.h
+++ b/fxjs/xfa/cjx_boolean.h
@@ -19,6 +19,9 @@
 
   JSE_PROP(defaultValue); /* {default} */
   JSE_PROP(value);
+
+ private:
+  using Type__ = CJX_Boolean;
 };
 
 #endif  // FXJS_XFA_CJX_BOOLEAN_H_
diff --git a/fxjs/xfa/cjx_comb.h b/fxjs/xfa/cjx_comb.h
index f1e0f3d..b5140ec 100644
--- a/fxjs/xfa/cjx_comb.h
+++ b/fxjs/xfa/cjx_comb.h
@@ -18,6 +18,9 @@
   ~CJX_Comb() override;
 
   JSE_PROP(numberOfCells);
+
+ private:
+  using Type__ = CJX_Comb;
 };
 
 #endif  // FXJS_XFA_CJX_COMB_H_
diff --git a/fxjs/xfa/cjx_container.h b/fxjs/xfa/cjx_container.h
index 7bc6b0e..914056a 100644
--- a/fxjs/xfa/cjx_container.h
+++ b/fxjs/xfa/cjx_container.h
@@ -17,10 +17,12 @@
   explicit CJX_Container(CXFA_Node* node);
   ~CJX_Container() override;
 
-  JSE_METHOD(getDelta, CJX_Container);
-  JSE_METHOD(getDeltas, CJX_Container);
+  JSE_METHOD(getDelta);
+  JSE_METHOD(getDeltas);
 
  private:
+  using Type__ = CJX_Container;
+
   static const CJX_MethodSpec MethodSpecs[];
 };
 
diff --git a/fxjs/xfa/cjx_datavalue.h b/fxjs/xfa/cjx_datavalue.h
index a6f4474..6c48d93 100644
--- a/fxjs/xfa/cjx_datavalue.h
+++ b/fxjs/xfa/cjx_datavalue.h
@@ -20,6 +20,9 @@
   JSE_PROP(defaultValue); /* {default} */
   JSE_PROP(isNull);
   JSE_PROP(value);
+
+ private:
+  using Type__ = CJX_DataValue;
 };
 
 #endif  // FXJS_XFA_CJX_DATAVALUE_H_
diff --git a/fxjs/xfa/cjx_datawindow.h b/fxjs/xfa/cjx_datawindow.h
index 48cce93..75146ac 100644
--- a/fxjs/xfa/cjx_datawindow.h
+++ b/fxjs/xfa/cjx_datawindow.h
@@ -19,10 +19,10 @@
   explicit CJX_DataWindow(CScript_DataWindow* window);
   ~CJX_DataWindow() override;
 
-  JSE_METHOD(gotoRecord, CJX_DataWindow);
-  JSE_METHOD(isRecordGroup, CJX_DataWindow);
-  JSE_METHOD(moveCurrentRecord, CJX_DataWindow);
-  JSE_METHOD(record, CJX_DataWindow);
+  JSE_METHOD(gotoRecord);
+  JSE_METHOD(isRecordGroup);
+  JSE_METHOD(moveCurrentRecord);
+  JSE_METHOD(record);
 
   JSE_PROP(currentRecordNumber);
   JSE_PROP(isDefined);
@@ -30,6 +30,8 @@
   JSE_PROP(recordsBefore);
 
  private:
+  using Type__ = CJX_DataWindow;
+
   static const CJX_MethodSpec MethodSpecs[];
 };
 
diff --git a/fxjs/xfa/cjx_date.h b/fxjs/xfa/cjx_date.h
index 5a65620..52c4349 100644
--- a/fxjs/xfa/cjx_date.h
+++ b/fxjs/xfa/cjx_date.h
@@ -19,6 +19,9 @@
 
   JSE_PROP(defaultValue); /* {default} */
   JSE_PROP(value);
+
+ private:
+  using Type__ = CJX_Date;
 };
 
 #endif  // FXJS_XFA_CJX_DATE_H_
diff --git a/fxjs/xfa/cjx_datetime.h b/fxjs/xfa/cjx_datetime.h
index 8f508a1..df22909 100644
--- a/fxjs/xfa/cjx_datetime.h
+++ b/fxjs/xfa/cjx_datetime.h
@@ -19,6 +19,9 @@
 
   JSE_PROP(defaultValue); /* {default} */
   JSE_PROP(value);
+
+ private:
+  using Type__ = CJX_DateTime;
 };
 
 #endif  // FXJS_XFA_CJX_DATETIME_H_
diff --git a/fxjs/xfa/cjx_decimal.h b/fxjs/xfa/cjx_decimal.h
index e8f8af7..8330a0e 100644
--- a/fxjs/xfa/cjx_decimal.h
+++ b/fxjs/xfa/cjx_decimal.h
@@ -19,6 +19,9 @@
 
   JSE_PROP(defaultValue); /* {default} */
   JSE_PROP(value);
+
+ private:
+  using Type__ = CJX_Decimal;
 };
 
 #endif  // FXJS_XFA_CJX_DECIMAL_H_
diff --git a/fxjs/xfa/cjx_delta.h b/fxjs/xfa/cjx_delta.h
index 971774b..0a358fd 100644
--- a/fxjs/xfa/cjx_delta.h
+++ b/fxjs/xfa/cjx_delta.h
@@ -17,13 +17,15 @@
   explicit CJX_Delta(CXFA_Delta* delta);
   ~CJX_Delta() override;
 
-  JSE_METHOD(restore, CJX_Delta);
+  JSE_METHOD(restore);
 
   JSE_PROP(currentValue);
   JSE_PROP(savedValue);
   JSE_PROP(target);
 
  private:
+  using Type__ = CJX_Delta;
+
   static const CJX_MethodSpec MethodSpecs[];
 };
 
diff --git a/fxjs/xfa/cjx_desc.h b/fxjs/xfa/cjx_desc.h
index 99c78d8..1e71f65 100644
--- a/fxjs/xfa/cjx_desc.h
+++ b/fxjs/xfa/cjx_desc.h
@@ -17,9 +17,11 @@
   explicit CJX_Desc(CXFA_Desc* desc);
   ~CJX_Desc() override;
 
-  JSE_METHOD(metadata, CJX_Desc);
+  JSE_METHOD(metadata);
 
  private:
+  using Type__ = CJX_Desc;
+
   static const CJX_MethodSpec MethodSpecs[];
 };
 
diff --git a/fxjs/xfa/cjx_draw.h b/fxjs/xfa/cjx_draw.h
index 099b449..134a1a0 100644
--- a/fxjs/xfa/cjx_draw.h
+++ b/fxjs/xfa/cjx_draw.h
@@ -19,6 +19,9 @@
 
   JSE_PROP(defaultValue); /* {default} */
   JSE_PROP(rawValue);
+
+ private:
+  using Type__ = CJX_Draw;
 };
 
 #endif  // FXJS_XFA_CJX_DRAW_H_
diff --git a/fxjs/xfa/cjx_encrypt.h b/fxjs/xfa/cjx_encrypt.h
index 2d34eca..1bf4fe9 100644
--- a/fxjs/xfa/cjx_encrypt.h
+++ b/fxjs/xfa/cjx_encrypt.h
@@ -18,6 +18,9 @@
   ~CJX_Encrypt() override;
 
   JSE_PROP(format);
+
+ private:
+  using Type__ = CJX_Encrypt;
 };
 
 #endif  // FXJS_XFA_CJX_ENCRYPT_H_
diff --git a/fxjs/xfa/cjx_eventpseudomodel.h b/fxjs/xfa/cjx_eventpseudomodel.h
index 31d7dbe..6d13018 100644
--- a/fxjs/xfa/cjx_eventpseudomodel.h
+++ b/fxjs/xfa/cjx_eventpseudomodel.h
@@ -38,8 +38,8 @@
   explicit CJX_EventPseudoModel(CScript_EventPseudoModel* model);
   ~CJX_EventPseudoModel() override;
 
-  JSE_METHOD(emit, CJX_EventPseudoModel);
-  JSE_METHOD(reset, CJX_EventPseudoModel);
+  JSE_METHOD(emit);
+  JSE_METHOD(reset);
 
   JSE_PROP(cancelAction);
   JSE_PROP(change);
@@ -60,6 +60,8 @@
   JSE_PROP(target);
 
  private:
+  using Type__ = CJX_EventPseudoModel;
+
   void Property(CFXJSE_Value* pValue, XFA_Event dwFlag, bool bSetting);
 
   static const CJX_MethodSpec MethodSpecs[];
diff --git a/fxjs/xfa/cjx_exclgroup.h b/fxjs/xfa/cjx_exclgroup.h
index f03e399..f57fa86 100644
--- a/fxjs/xfa/cjx_exclgroup.h
+++ b/fxjs/xfa/cjx_exclgroup.h
@@ -17,11 +17,11 @@
   explicit CJX_ExclGroup(CXFA_ExclGroup* group);
   ~CJX_ExclGroup() override;
 
-  JSE_METHOD(execCalculate, CJX_ExclGroup);
-  JSE_METHOD(execEvent, CJX_ExclGroup);
-  JSE_METHOD(execInitialize, CJX_ExclGroup);
-  JSE_METHOD(execValidate, CJX_ExclGroup);
-  JSE_METHOD(selectedMember, CJX_ExclGroup);
+  JSE_METHOD(execCalculate);
+  JSE_METHOD(execEvent);
+  JSE_METHOD(execInitialize);
+  JSE_METHOD(execValidate);
+  JSE_METHOD(selectedMember);
 
   JSE_PROP(defaultValue); /* {default} */
   JSE_PROP(borderColor);
@@ -34,6 +34,8 @@
   JSE_PROP(validationMessage);
 
  private:
+  using Type__ = CJX_ExclGroup;
+
   static const CJX_MethodSpec MethodSpecs[];
 };
 
diff --git a/fxjs/xfa/cjx_exdata.h b/fxjs/xfa/cjx_exdata.h
index 42b49f6..86d9219 100644
--- a/fxjs/xfa/cjx_exdata.h
+++ b/fxjs/xfa/cjx_exdata.h
@@ -18,6 +18,9 @@
   ~CJX_ExData() override;
 
   JSE_PROP(defaultValue); /* {default} */
+
+ private:
+  using Type__ = CJX_ExData;
 };
 
 #endif  // FXJS_XFA_CJX_EXDATA_H_
diff --git a/fxjs/xfa/cjx_extras.h b/fxjs/xfa/cjx_extras.h
index e6e2dc1..420bfe4 100644
--- a/fxjs/xfa/cjx_extras.h
+++ b/fxjs/xfa/cjx_extras.h
@@ -18,6 +18,9 @@
   ~CJX_Extras() override;
 
   JSE_PROP(type);
+
+ private:
+  using Type__ = CJX_Extras;
 };
 
 #endif  // FXJS_XFA_CJX_EXTRAS_H_
diff --git a/fxjs/xfa/cjx_field.h b/fxjs/xfa/cjx_field.h
index fa68495..72ded92 100644
--- a/fxjs/xfa/cjx_field.h
+++ b/fxjs/xfa/cjx_field.h
@@ -17,18 +17,18 @@
   explicit CJX_Field(CXFA_Field* field);
   ~CJX_Field() override;
 
-  JSE_METHOD(addItem, CJX_Field);
-  JSE_METHOD(boundItem, CJX_Field);
-  JSE_METHOD(clearItems, CJX_Field);
-  JSE_METHOD(deleteItem, CJX_Field);
-  JSE_METHOD(execCalculate, CJX_Field);
-  JSE_METHOD(execEvent, CJX_Field);
-  JSE_METHOD(execInitialize, CJX_Field);
-  JSE_METHOD(execValidate, CJX_Field);
-  JSE_METHOD(getDisplayItem, CJX_Field);
-  JSE_METHOD(getItemState, CJX_Field);
-  JSE_METHOD(getSaveItem, CJX_Field);
-  JSE_METHOD(setItemState, CJX_Field);
+  JSE_METHOD(addItem);
+  JSE_METHOD(boundItem);
+  JSE_METHOD(clearItems);
+  JSE_METHOD(deleteItem);
+  JSE_METHOD(execCalculate);
+  JSE_METHOD(execEvent);
+  JSE_METHOD(execInitialize);
+  JSE_METHOD(execValidate);
+  JSE_METHOD(getDisplayItem);
+  JSE_METHOD(getItemState);
+  JSE_METHOD(getSaveItem);
+  JSE_METHOD(setItemState);
 
   JSE_PROP(defaultValue); /* {default} */
   JSE_PROP(borderColor);
@@ -46,6 +46,8 @@
   JSE_PROP(validationMessage);
 
  private:
+  using Type__ = CJX_Field;
+
   static const CJX_MethodSpec MethodSpecs[];
 };
 
diff --git a/fxjs/xfa/cjx_float.h b/fxjs/xfa/cjx_float.h
index bd0a10b..c964339 100644
--- a/fxjs/xfa/cjx_float.h
+++ b/fxjs/xfa/cjx_float.h
@@ -19,6 +19,9 @@
 
   JSE_PROP(defaultValue); /* {default} */
   JSE_PROP(value);
+
+ private:
+  using Type__ = CJX_Float;
 };
 
 #endif  // FXJS_XFA_CJX_FLOAT_H_
diff --git a/fxjs/xfa/cjx_form.h b/fxjs/xfa/cjx_form.h
index 9558ad5..f477a1c 100644
--- a/fxjs/xfa/cjx_form.h
+++ b/fxjs/xfa/cjx_form.h
@@ -17,14 +17,16 @@
   explicit CJX_Form(CXFA_Form* form);
   ~CJX_Form() override;
 
-  JSE_METHOD(execCalculate, CJX_Form);
-  JSE_METHOD(execInitialize, CJX_Form);
-  JSE_METHOD(execValidate, CJX_Form);
-  JSE_METHOD(formNodes, CJX_Form);
-  JSE_METHOD(recalculate, CJX_Form);
-  JSE_METHOD(remerge, CJX_Form);
+  JSE_METHOD(execCalculate);
+  JSE_METHOD(execInitialize);
+  JSE_METHOD(execValidate);
+  JSE_METHOD(formNodes);
+  JSE_METHOD(recalculate);
+  JSE_METHOD(remerge);
 
  private:
+  using Type__ = CJX_Form;
+
   static const CJX_MethodSpec MethodSpecs[];
 };
 
diff --git a/fxjs/xfa/cjx_handler.h b/fxjs/xfa/cjx_handler.h
index 55357c7..a5ad537 100644
--- a/fxjs/xfa/cjx_handler.h
+++ b/fxjs/xfa/cjx_handler.h
@@ -18,6 +18,9 @@
   ~CJX_Handler() override;
 
   JSE_PROP(version);
+
+ private:
+  using Type__ = CJX_Handler;
 };
 
 #endif  // FXJS_XFA_CJX_HANDLER_H_
diff --git a/fxjs/xfa/cjx_hostpseudomodel.h b/fxjs/xfa/cjx_hostpseudomodel.h
index 92b20f8..956a2fa 100644
--- a/fxjs/xfa/cjx_hostpseudomodel.h
+++ b/fxjs/xfa/cjx_hostpseudomodel.h
@@ -19,21 +19,21 @@
   explicit CJX_HostPseudoModel(CScript_HostPseudoModel* model);
   ~CJX_HostPseudoModel() override;
 
-  JSE_METHOD(beep, CJX_HostPseudoModel);
-  JSE_METHOD(documentCountInBatch, CJX_HostPseudoModel);
-  JSE_METHOD(documentInBatch, CJX_HostPseudoModel);
-  JSE_METHOD(exportData, CJX_HostPseudoModel);
-  JSE_METHOD(getFocus, CJX_HostPseudoModel);
-  JSE_METHOD(gotoURL, CJX_HostPseudoModel);
-  JSE_METHOD(importData, CJX_HostPseudoModel);
-  JSE_METHOD(messageBox, CJX_HostPseudoModel);
-  JSE_METHOD(openList, CJX_HostPseudoModel);
-  JSE_METHOD(pageDown, CJX_HostPseudoModel);
-  JSE_METHOD(pageUp, CJX_HostPseudoModel);
-  JSE_METHOD(print, CJX_HostPseudoModel);
-  JSE_METHOD(resetData, CJX_HostPseudoModel);
-  JSE_METHOD(response, CJX_HostPseudoModel);
-  JSE_METHOD(setFocus, CJX_HostPseudoModel);
+  JSE_METHOD(beep);
+  JSE_METHOD(documentCountInBatch);
+  JSE_METHOD(documentInBatch);
+  JSE_METHOD(exportData);
+  JSE_METHOD(getFocus);
+  JSE_METHOD(gotoURL);
+  JSE_METHOD(importData);
+  JSE_METHOD(messageBox);
+  JSE_METHOD(openList);
+  JSE_METHOD(pageDown);
+  JSE_METHOD(pageUp);
+  JSE_METHOD(print);
+  JSE_METHOD(resetData);
+  JSE_METHOD(response);
+  JSE_METHOD(setFocus);
 
   JSE_PROP(appType);
   JSE_PROP(calculationsEnabled);
@@ -51,6 +51,8 @@
   JSE_PROP(name);
 
  private:
+  using Type__ = CJX_HostPseudoModel;
+
   static const CJX_MethodSpec MethodSpecs[];
 };
 
diff --git a/fxjs/xfa/cjx_image.h b/fxjs/xfa/cjx_image.h
index 298f123..fa0aa8d 100644
--- a/fxjs/xfa/cjx_image.h
+++ b/fxjs/xfa/cjx_image.h
@@ -19,6 +19,9 @@
 
   JSE_PROP(defaultValue); /* {default} */
   JSE_PROP(value);
+
+ private:
+  using Type__ = CJX_Image;
 };
 
 #endif  // FXJS_XFA_CJX_IMAGE_H_
diff --git a/fxjs/xfa/cjx_instancemanager.h b/fxjs/xfa/cjx_instancemanager.h
index 9881f60..5568232 100644
--- a/fxjs/xfa/cjx_instancemanager.h
+++ b/fxjs/xfa/cjx_instancemanager.h
@@ -17,11 +17,11 @@
   explicit CJX_InstanceManager(CXFA_InstanceManager* mgr);
   ~CJX_InstanceManager() override;
 
-  JSE_METHOD(addInstance, CJX_InstanceManager);
-  JSE_METHOD(insertInstance, CJX_InstanceManager);
-  JSE_METHOD(moveInstance, CJX_InstanceManager);
-  JSE_METHOD(removeInstance, CJX_InstanceManager);
-  JSE_METHOD(setInstances, CJX_InstanceManager);
+  JSE_METHOD(addInstance);
+  JSE_METHOD(insertInstance);
+  JSE_METHOD(moveInstance);
+  JSE_METHOD(removeInstance);
+  JSE_METHOD(setInstances);
 
   JSE_PROP(count);
   JSE_PROP(max);
@@ -30,6 +30,8 @@
   int32_t MoveInstance(int32_t iTo, int32_t iFrom);
 
  private:
+  using Type__ = CJX_InstanceManager;
+
   int32_t SetInstances(int32_t iDesired);
 
   static const CJX_MethodSpec MethodSpecs[];
diff --git a/fxjs/xfa/cjx_integer.h b/fxjs/xfa/cjx_integer.h
index c647fb3..608c8fd 100644
--- a/fxjs/xfa/cjx_integer.h
+++ b/fxjs/xfa/cjx_integer.h
@@ -19,6 +19,9 @@
 
   JSE_PROP(defaultValue); /* {default} */
   JSE_PROP(value);
+
+ private:
+  using Type__ = CJX_Integer;
 };
 
 #endif  // FXJS_XFA_CJX_INTEGER_H_
diff --git a/fxjs/xfa/cjx_layoutpseudomodel.h b/fxjs/xfa/cjx_layoutpseudomodel.h
index 9bd74bf..cf2850f 100644
--- a/fxjs/xfa/cjx_layoutpseudomodel.h
+++ b/fxjs/xfa/cjx_layoutpseudomodel.h
@@ -29,29 +29,31 @@
   explicit CJX_LayoutPseudoModel(CScript_LayoutPseudoModel* model);
   ~CJX_LayoutPseudoModel() override;
 
-  JSE_METHOD(absPage, CJX_LayoutPseudoModel);
-  JSE_METHOD(absPageCount, CJX_LayoutPseudoModel);
-  JSE_METHOD(absPageCountInBatch, CJX_LayoutPseudoModel);
-  JSE_METHOD(absPageInBatch, CJX_LayoutPseudoModel);
-  JSE_METHOD(absPageSpan, CJX_LayoutPseudoModel);
-  JSE_METHOD(h, CJX_LayoutPseudoModel);
-  JSE_METHOD(page, CJX_LayoutPseudoModel);
-  JSE_METHOD(pageContent, CJX_LayoutPseudoModel);
-  JSE_METHOD(pageCount, CJX_LayoutPseudoModel);
-  JSE_METHOD(pageSpan, CJX_LayoutPseudoModel);
-  JSE_METHOD(relayout, CJX_LayoutPseudoModel);
-  JSE_METHOD(relayoutPageArea, CJX_LayoutPseudoModel);
-  JSE_METHOD(sheet, CJX_LayoutPseudoModel);
-  JSE_METHOD(sheetCount, CJX_LayoutPseudoModel);
-  JSE_METHOD(sheetCountInBatch, CJX_LayoutPseudoModel);
-  JSE_METHOD(sheetInBatch, CJX_LayoutPseudoModel);
-  JSE_METHOD(w, CJX_LayoutPseudoModel);
-  JSE_METHOD(x, CJX_LayoutPseudoModel);
-  JSE_METHOD(y, CJX_LayoutPseudoModel);
+  JSE_METHOD(absPage);
+  JSE_METHOD(absPageCount);
+  JSE_METHOD(absPageCountInBatch);
+  JSE_METHOD(absPageInBatch);
+  JSE_METHOD(absPageSpan);
+  JSE_METHOD(h);
+  JSE_METHOD(page);
+  JSE_METHOD(pageContent);
+  JSE_METHOD(pageCount);
+  JSE_METHOD(pageSpan);
+  JSE_METHOD(relayout);
+  JSE_METHOD(relayoutPageArea);
+  JSE_METHOD(sheet);
+  JSE_METHOD(sheetCount);
+  JSE_METHOD(sheetCountInBatch);
+  JSE_METHOD(sheetInBatch);
+  JSE_METHOD(w);
+  JSE_METHOD(x);
+  JSE_METHOD(y);
 
   JSE_PROP(ready);
 
  private:
+  using Type__ = CJX_LayoutPseudoModel;
+
   CJS_Result NumberedPageCount(CFX_V8* runtime, bool bNumbered);
   CJS_Result HWXY(CFX_V8* runtime,
                   const std::vector<v8::Local<v8::Value>>& params,
diff --git a/fxjs/xfa/cjx_list.h b/fxjs/xfa/cjx_list.h
index 8f2e39e..c0cfecd 100644
--- a/fxjs/xfa/cjx_list.h
+++ b/fxjs/xfa/cjx_list.h
@@ -17,14 +17,16 @@
   explicit CJX_List(CXFA_List* list);
   ~CJX_List() override;
 
-  JSE_METHOD(append, CJX_List);
-  JSE_METHOD(insert, CJX_List);
-  JSE_METHOD(item, CJX_List);
-  JSE_METHOD(remove, CJX_List);
+  JSE_METHOD(append);
+  JSE_METHOD(insert);
+  JSE_METHOD(item);
+  JSE_METHOD(remove);
 
   JSE_PROP(length);
 
  private:
+  using Type__ = CJX_List;
+
   CXFA_List* GetXFAList();
 
   static const CJX_MethodSpec MethodSpecs[];
diff --git a/fxjs/xfa/cjx_logpseudomodel.h b/fxjs/xfa/cjx_logpseudomodel.h
index 4e9cb35..876917e 100644
--- a/fxjs/xfa/cjx_logpseudomodel.h
+++ b/fxjs/xfa/cjx_logpseudomodel.h
@@ -19,13 +19,15 @@
   explicit CJX_LogPseudoModel(CScript_LogPseudoModel* model);
   ~CJX_LogPseudoModel() override;
 
-  JSE_METHOD(message, CJX_LogPseudoModel);
-  JSE_METHOD(traceEnabled, CJX_LogPseudoModel);
-  JSE_METHOD(traceActivate, CJX_LogPseudoModel);
-  JSE_METHOD(traceDeactivate, CJX_LogPseudoModel);
-  JSE_METHOD(trace, CJX_LogPseudoModel);
+  JSE_METHOD(message);
+  JSE_METHOD(traceEnabled);
+  JSE_METHOD(traceActivate);
+  JSE_METHOD(traceDeactivate);
+  JSE_METHOD(trace);
 
  private:
+  using Type__ = CJX_LogPseudoModel;
+
   static const CJX_MethodSpec MethodSpecs[];
 };
 
diff --git a/fxjs/xfa/cjx_manifest.h b/fxjs/xfa/cjx_manifest.h
index b60911f..2d81576 100644
--- a/fxjs/xfa/cjx_manifest.h
+++ b/fxjs/xfa/cjx_manifest.h
@@ -17,11 +17,13 @@
   explicit CJX_Manifest(CXFA_Manifest* manifest);
   ~CJX_Manifest() override;
 
-  JSE_METHOD(evaluate, CJX_Manifest);
+  JSE_METHOD(evaluate);
 
   JSE_PROP(defaultValue); /* {default} */
 
  private:
+  using Type__ = CJX_Manifest;
+
   static const CJX_MethodSpec MethodSpecs[];
 };
 
diff --git a/fxjs/xfa/cjx_model.h b/fxjs/xfa/cjx_model.h
index c2f2f7c..b6b92f3 100644
--- a/fxjs/xfa/cjx_model.h
+++ b/fxjs/xfa/cjx_model.h
@@ -17,14 +17,16 @@
   explicit CJX_Model(CXFA_Node* obj);
   ~CJX_Model() override;
 
-  JSE_METHOD(clearErrorList, CJX_Model);
-  JSE_METHOD(createNode, CJX_Model);
-  JSE_METHOD(isCompatibleNS, CJX_Model);
+  JSE_METHOD(clearErrorList);
+  JSE_METHOD(createNode);
+  JSE_METHOD(isCompatibleNS);
 
   JSE_PROP(aliasNode);
   JSE_PROP(context);
 
  private:
+  using Type__ = CJX_Model;
+
   static const CJX_MethodSpec MethodSpecs[];
 };
 
diff --git a/fxjs/xfa/cjx_node.h b/fxjs/xfa/cjx_node.h
index dc4ba0b..d26e7a0 100644
--- a/fxjs/xfa/cjx_node.h
+++ b/fxjs/xfa/cjx_node.h
@@ -18,17 +18,17 @@
   explicit CJX_Node(CXFA_Node* node);
   ~CJX_Node() override;
 
-  JSE_METHOD(applyXSL, CJX_Node);
-  JSE_METHOD(assignNode, CJX_Node);
-  JSE_METHOD(clone, CJX_Node);
-  JSE_METHOD(getAttribute, CJX_Node);
-  JSE_METHOD(getElement, CJX_Node);
-  JSE_METHOD(isPropertySpecified, CJX_Node);
-  JSE_METHOD(loadXML, CJX_Node);
-  JSE_METHOD(saveFilteredXML, CJX_Node);
-  JSE_METHOD(saveXML, CJX_Node);
-  JSE_METHOD(setAttribute, CJX_Node);
-  JSE_METHOD(setElement, CJX_Node);
+  JSE_METHOD(applyXSL);
+  JSE_METHOD(assignNode);
+  JSE_METHOD(clone);
+  JSE_METHOD(getAttribute);
+  JSE_METHOD(getElement);
+  JSE_METHOD(isPropertySpecified);
+  JSE_METHOD(loadXML);
+  JSE_METHOD(saveFilteredXML);
+  JSE_METHOD(saveXML);
+  JSE_METHOD(setAttribute);
+  JSE_METHOD(setElement);
 
   JSE_PROP(isContainer);
   JSE_PROP(isNull);
@@ -42,6 +42,8 @@
   int32_t execSingleEventByName(WideStringView wsEventName, XFA_Element eType);
 
  private:
+  using Type__ = CJX_Node;
+
   static const CJX_MethodSpec MethodSpecs[];
 };
 
diff --git a/fxjs/xfa/cjx_object.h b/fxjs/xfa/cjx_object.h
index 4bbd35f..cdb6907 100644
--- a/fxjs/xfa/cjx_object.h
+++ b/fxjs/xfa/cjx_object.h
@@ -222,6 +222,8 @@
   void ThrowException(const WideString& str) const;
 
  private:
+  using Type__ = CJX_Object;
+
   std::pair<CXFA_Node*, int32_t> GetPropertyInternal(int32_t index,
                                                      XFA_Element eType) const;
   CXFA_Node* GetOrCreatePropertyInternal(int32_t index, XFA_Element eType);
diff --git a/fxjs/xfa/cjx_occur.h b/fxjs/xfa/cjx_occur.h
index b6745a5..87f6043 100644
--- a/fxjs/xfa/cjx_occur.h
+++ b/fxjs/xfa/cjx_occur.h
@@ -19,6 +19,9 @@
 
   JSE_PROP(max);
   JSE_PROP(min);
+
+ private:
+  using Type__ = CJX_Occur;
 };
 
 #endif  // FXJS_XFA_CJX_OCCUR_H_
diff --git a/fxjs/xfa/cjx_packet.h b/fxjs/xfa/cjx_packet.h
index 0becac6..9853ac4 100644
--- a/fxjs/xfa/cjx_packet.h
+++ b/fxjs/xfa/cjx_packet.h
@@ -17,13 +17,15 @@
   explicit CJX_Packet(CXFA_Packet* packet);
   ~CJX_Packet() override;
 
-  JSE_METHOD(getAttribute, CJX_Packet);
-  JSE_METHOD(removeAttribute, CJX_Packet);
-  JSE_METHOD(setAttribute, CJX_Packet);
+  JSE_METHOD(getAttribute);
+  JSE_METHOD(removeAttribute);
+  JSE_METHOD(setAttribute);
 
   JSE_PROP(content);
 
  private:
+  using Type__ = CJX_Packet;
+
   static const CJX_MethodSpec MethodSpecs[];
 };
 
diff --git a/fxjs/xfa/cjx_picture.h b/fxjs/xfa/cjx_picture.h
index fe3afb8..1fa3688 100644
--- a/fxjs/xfa/cjx_picture.h
+++ b/fxjs/xfa/cjx_picture.h
@@ -19,6 +19,9 @@
 
   JSE_PROP(defaultValue); /* {default} */
   JSE_PROP(value);
+
+ private:
+  using Type__ = CJX_Picture;
 };
 
 #endif  // FXJS_XFA_CJX_PICTURE_H_
diff --git a/fxjs/xfa/cjx_script.h b/fxjs/xfa/cjx_script.h
index 52fc6fc..337497d 100644
--- a/fxjs/xfa/cjx_script.h
+++ b/fxjs/xfa/cjx_script.h
@@ -20,6 +20,9 @@
   JSE_PROP(defaultValue); /* {default} */
   JSE_PROP(stateless);
   JSE_PROP(value);
+
+ private:
+  using Type__ = CJX_Script;
 };
 
 #endif  // FXJS_XFA_CJX_SCRIPT_H_
diff --git a/fxjs/xfa/cjx_signaturepseudomodel.h b/fxjs/xfa/cjx_signaturepseudomodel.h
index 865e27a..d830e4b 100644
--- a/fxjs/xfa/cjx_signaturepseudomodel.h
+++ b/fxjs/xfa/cjx_signaturepseudomodel.h
@@ -17,12 +17,14 @@
   explicit CJX_SignaturePseudoModel(CScript_SignaturePseudoModel* model);
   ~CJX_SignaturePseudoModel() override;
 
-  JSE_METHOD(verifySignature /*verify*/, CJX_SignaturePseudoModel);
-  JSE_METHOD(sign, CJX_SignaturePseudoModel);
-  JSE_METHOD(enumerate, CJX_SignaturePseudoModel);
-  JSE_METHOD(clear, CJX_SignaturePseudoModel);
+  JSE_METHOD(verifySignature /*verify*/);
+  JSE_METHOD(sign);
+  JSE_METHOD(enumerate);
+  JSE_METHOD(clear);
 
  private:
+  using Type__ = CJX_SignaturePseudoModel;
+
   static const CJX_MethodSpec MethodSpecs[];
 };
 
diff --git a/fxjs/xfa/cjx_source.h b/fxjs/xfa/cjx_source.h
index e2dd405..7948279 100644
--- a/fxjs/xfa/cjx_source.h
+++ b/fxjs/xfa/cjx_source.h
@@ -17,27 +17,29 @@
   explicit CJX_Source(CXFA_Source* src);
   ~CJX_Source() override;
 
-  JSE_METHOD(addNew, CJX_Source);
-  JSE_METHOD(cancel, CJX_Source);
-  JSE_METHOD(cancelBatch, CJX_Source);
-  JSE_METHOD(close, CJX_Source);
-  JSE_METHOD(deleteItem /*delete*/, CJX_Source);
-  JSE_METHOD(first, CJX_Source);
-  JSE_METHOD(hasDataChanged, CJX_Source);
-  JSE_METHOD(isBOF, CJX_Source);
-  JSE_METHOD(isEOF, CJX_Source);
-  JSE_METHOD(last, CJX_Source);
-  JSE_METHOD(next, CJX_Source);
-  JSE_METHOD(open, CJX_Source);
-  JSE_METHOD(previous, CJX_Source);
-  JSE_METHOD(requery, CJX_Source);
-  JSE_METHOD(resync, CJX_Source);
-  JSE_METHOD(update, CJX_Source);
-  JSE_METHOD(updateBatch, CJX_Source);
+  JSE_METHOD(addNew);
+  JSE_METHOD(cancel);
+  JSE_METHOD(cancelBatch);
+  JSE_METHOD(close);
+  JSE_METHOD(deleteItem /*delete*/);
+  JSE_METHOD(first);
+  JSE_METHOD(hasDataChanged);
+  JSE_METHOD(isBOF);
+  JSE_METHOD(isEOF);
+  JSE_METHOD(last);
+  JSE_METHOD(next);
+  JSE_METHOD(open);
+  JSE_METHOD(previous);
+  JSE_METHOD(requery);
+  JSE_METHOD(resync);
+  JSE_METHOD(update);
+  JSE_METHOD(updateBatch);
 
   JSE_PROP(db);
 
  private:
+  using Type__ = CJX_Source;
+
   static const CJX_MethodSpec MethodSpecs[];
 };
 
diff --git a/fxjs/xfa/cjx_subform.h b/fxjs/xfa/cjx_subform.h
index 96a1f2b..8f72880 100644
--- a/fxjs/xfa/cjx_subform.h
+++ b/fxjs/xfa/cjx_subform.h
@@ -17,10 +17,10 @@
   explicit CJX_Subform(CXFA_Node* container);
   ~CJX_Subform() override;
 
-  JSE_METHOD(execCalculate, CJX_Subform);
-  JSE_METHOD(execEvent, CJX_Subform);
-  JSE_METHOD(execInitialize, CJX_Subform);
-  JSE_METHOD(execValidate, CJX_Subform);
+  JSE_METHOD(execCalculate);
+  JSE_METHOD(execEvent);
+  JSE_METHOD(execInitialize);
+  JSE_METHOD(execValidate);
 
   JSE_PROP(instanceIndex);
   JSE_PROP(layout);
@@ -28,6 +28,8 @@
   JSE_PROP(validationMessage);
 
  private:
+  using Type__ = CJX_Subform;
+
   static const CJX_MethodSpec MethodSpecs[];
 };
 
diff --git a/fxjs/xfa/cjx_subformset.h b/fxjs/xfa/cjx_subformset.h
index f71f7c3..a60b560 100644
--- a/fxjs/xfa/cjx_subformset.h
+++ b/fxjs/xfa/cjx_subformset.h
@@ -18,6 +18,9 @@
   ~CJX_SubformSet() override;
 
   JSE_PROP(instanceIndex);
+
+ private:
+  using Type__ = CJX_SubformSet;
 };
 
 #endif  // FXJS_XFA_CJX_SUBFORMSET_H_
diff --git a/fxjs/xfa/cjx_template.h b/fxjs/xfa/cjx_template.h
index 6d5f50b..e4c819c 100644
--- a/fxjs/xfa/cjx_template.h
+++ b/fxjs/xfa/cjx_template.h
@@ -20,14 +20,16 @@
   /* The docs list a |createNode| method on Template but that method already
    * exists on Model, also the |createNode| docs say it exists on Model not
    * on Template so I'm leaving |createNode| out of the template methods. */
-  JSE_METHOD(execCalculate, CJX_Template);
-  JSE_METHOD(execInitialize, CJX_Template);
-  JSE_METHOD(execValidate, CJX_Template);
-  JSE_METHOD(formNodes, CJX_Template);
-  JSE_METHOD(recalculate, CJX_Template);
-  JSE_METHOD(remerge, CJX_Template);
+  JSE_METHOD(execCalculate);
+  JSE_METHOD(execInitialize);
+  JSE_METHOD(execValidate);
+  JSE_METHOD(formNodes);
+  JSE_METHOD(recalculate);
+  JSE_METHOD(remerge);
 
  private:
+  using Type__ = CJX_Template;
+
   static const CJX_MethodSpec MethodSpecs[];
 };
 
diff --git a/fxjs/xfa/cjx_text.h b/fxjs/xfa/cjx_text.h
index 49ec35e..5925f14 100644
--- a/fxjs/xfa/cjx_text.h
+++ b/fxjs/xfa/cjx_text.h
@@ -19,6 +19,9 @@
 
   JSE_PROP(defaultValue); /* {default} */
   JSE_PROP(value);
+
+ private:
+  using Type__ = CJX_Text;
 };
 
 #endif  // FXJS_XFA_CJX_TEXT_H_
diff --git a/fxjs/xfa/cjx_textnode.h b/fxjs/xfa/cjx_textnode.h
index 9ef8a3f..bf9ff14 100644
--- a/fxjs/xfa/cjx_textnode.h
+++ b/fxjs/xfa/cjx_textnode.h
@@ -19,6 +19,9 @@
 
   JSE_PROP(defaultValue); /* {default} */
   JSE_PROP(value);
+
+ private:
+  using Type__ = CJX_TextNode;
 };
 
 #endif  // FXJS_XFA_CJX_TEXTNODE_H_
diff --git a/fxjs/xfa/cjx_time.h b/fxjs/xfa/cjx_time.h
index 6d9fe61..2b55eb4 100644
--- a/fxjs/xfa/cjx_time.h
+++ b/fxjs/xfa/cjx_time.h
@@ -19,6 +19,9 @@
 
   JSE_PROP(defaultValue); /* {default} */
   JSE_PROP(value);
+
+ private:
+  using Type__ = CJX_Time;
 };
 
 #endif  // FXJS_XFA_CJX_TIME_H_
diff --git a/fxjs/xfa/cjx_tree.h b/fxjs/xfa/cjx_tree.h
index a30464f..8b6e918 100644
--- a/fxjs/xfa/cjx_tree.h
+++ b/fxjs/xfa/cjx_tree.h
@@ -18,8 +18,8 @@
   explicit CJX_Tree(CXFA_Object* obj);
   ~CJX_Tree() override;
 
-  JSE_METHOD(resolveNode, CJX_Tree);
-  JSE_METHOD(resolveNodes, CJX_Tree);
+  JSE_METHOD(resolveNode);
+  JSE_METHOD(resolveNodes);
 
   JSE_PROP(all);
   JSE_PROP(classAll);
@@ -30,6 +30,8 @@
   JSE_PROP(somExpression);
 
  private:
+  using Type__ = CJX_Tree;
+
   void ResolveNodeList(CFXJSE_Value* pValue,
                        WideString wsExpression,
                        uint32_t dwFlag,
diff --git a/fxjs/xfa/cjx_treelist.h b/fxjs/xfa/cjx_treelist.h
index 6ae9518..89551c5 100644
--- a/fxjs/xfa/cjx_treelist.h
+++ b/fxjs/xfa/cjx_treelist.h
@@ -17,9 +17,11 @@
   explicit CJX_TreeList(CXFA_TreeList* list);
   ~CJX_TreeList() override;
 
-  JSE_METHOD(namedItem, CJX_TreeList);
+  JSE_METHOD(namedItem);
 
  private:
+  using Type__ = CJX_TreeList;
+
   CXFA_TreeList* GetXFATreeList();
 
   static const CJX_MethodSpec MethodSpecs[];
diff --git a/fxjs/xfa/cjx_value.h b/fxjs/xfa/cjx_value.h
index 23ee567..b6f717f 100644
--- a/fxjs/xfa/cjx_value.h
+++ b/fxjs/xfa/cjx_value.h
@@ -18,6 +18,9 @@
   ~CJX_Value() override;
 
   JSE_PROP(override);
+
+ private:
+  using Type__ = CJX_Value;
 };
 
 #endif  // FXJS_XFA_CJX_VALUE_H_
diff --git a/fxjs/xfa/cjx_wsdlconnection.h b/fxjs/xfa/cjx_wsdlconnection.h
index 5b563b8..12f2b7e 100644
--- a/fxjs/xfa/cjx_wsdlconnection.h
+++ b/fxjs/xfa/cjx_wsdlconnection.h
@@ -17,9 +17,11 @@
   explicit CJX_WsdlConnection(CXFA_WsdlConnection* connection);
   ~CJX_WsdlConnection() override;
 
-  JSE_METHOD(execute, CJX_WsdlConnection);
+  JSE_METHOD(execute);
 
  private:
+  using Type__ = CJX_WsdlConnection;
+
   static const CJX_MethodSpec MethodSpecs[];
 };
 
diff --git a/fxjs/xfa/cjx_xfa.h b/fxjs/xfa/cjx_xfa.h
index 882ee52..8f4b949 100644
--- a/fxjs/xfa/cjx_xfa.h
+++ b/fxjs/xfa/cjx_xfa.h
@@ -18,6 +18,9 @@
   ~CJX_Xfa() override;
 
   JSE_PROP(thisValue); /* this */
+
+ private:
+  using Type__ = CJX_Xfa;
 };
 
 #endif  // FXJS_XFA_CJX_XFA_H_
diff --git a/fxjs/xfa/jse_define.h b/fxjs/xfa/jse_define.h
index 73f246d..5a63e72 100644
--- a/fxjs/xfa/jse_define.h
+++ b/fxjs/xfa/jse_define.h
@@ -22,14 +22,14 @@
   return (node->*M)(runtime, params);
 }
 
-#define JSE_METHOD(method_name, class_name)                 \
-  static CJS_Result method_name##_static(                   \
-      CJX_Object* node, CFX_V8* runtime,                    \
-      const std::vector<v8::Local<v8::Value>>& params) {    \
-    return JSEMethod<class_name, &class_name::method_name>( \
-        static_cast<class_name*>(node), runtime, params);   \
-  }                                                         \
-  CJS_Result method_name(CFX_V8* runtime,                   \
+#define JSE_METHOD(method_name)                                                \
+  static CJS_Result method_name##_static(                                      \
+      CJX_Object* node, CFX_V8* runtime,                                       \
+      const std::vector<v8::Local<v8::Value>>& params) {                       \
+    return JSEMethod<Type__, &Type__::method_name>(static_cast<Type__*>(node), \
+                                                   runtime, params);           \
+  }                                                                            \
+  CJS_Result method_name(CFX_V8* runtime,                                      \
                          const std::vector<v8::Local<v8::Value>>& params)
 
 #define JSE_PROP(prop_name) \
