diff --git a/fxjs/xfa/cjx_arc.h b/fxjs/xfa/cjx_arc.h
index a9a6bb6..2b62884 100644
--- a/fxjs/xfa/cjx_arc.h
+++ b/fxjs/xfa/cjx_arc.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_ARC_H_
 #define FXJS_XFA_CJX_ARC_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Arc;
@@ -16,12 +17,12 @@
   explicit CJX_Arc(CXFA_Arc* node);
   ~CJX_Arc() override;
 
-  JS_PROP(circular);
-  JS_PROP(hand);
-  JS_PROP(startAngle);
-  JS_PROP(sweepAngle);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(circular);
+  JSE_PROP(hand);
+  JSE_PROP(startAngle);
+  JSE_PROP(sweepAngle);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_ARC_H_
diff --git a/fxjs/xfa/cjx_area.h b/fxjs/xfa/cjx_area.h
index 94083b3..2814231 100644
--- a/fxjs/xfa/cjx_area.h
+++ b/fxjs/xfa/cjx_area.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_AREA_H_
 #define FXJS_XFA_CJX_AREA_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_container.h"
 
 class CXFA_Area;
@@ -16,12 +17,12 @@
   explicit CJX_Area(CXFA_Area* node);
   ~CJX_Area() override;
 
-  JS_PROP(colSpan);
-  JS_PROP(relevant);
-  JS_PROP(use);
-  JS_PROP(usehref);
-  JS_PROP(x);
-  JS_PROP(y);
+  JSE_PROP(colSpan);
+  JSE_PROP(relevant);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
+  JSE_PROP(x);
+  JSE_PROP(y);
 };
 
 #endif  // FXJS_XFA_CJX_AREA_H_
diff --git a/fxjs/xfa/cjx_assist.h b/fxjs/xfa/cjx_assist.h
index 9e7c9c5..c150a51 100644
--- a/fxjs/xfa/cjx_assist.h
+++ b/fxjs/xfa/cjx_assist.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_ASSIST_H_
 #define FXJS_XFA_CJX_ASSIST_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Assist;
@@ -16,9 +17,9 @@
   explicit CJX_Assist(CXFA_Assist* node);
   ~CJX_Assist() override;
 
-  JS_PROP(role);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(role);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_ASSIST_H_
diff --git a/fxjs/xfa/cjx_barcode.h b/fxjs/xfa/cjx_barcode.h
index f5d8881..3901bd6 100644
--- a/fxjs/xfa/cjx_barcode.h
+++ b/fxjs/xfa/cjx_barcode.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_BARCODE_H_
 #define FXJS_XFA_CJX_BARCODE_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Barcode;
@@ -16,26 +17,26 @@
   explicit CJX_Barcode(CXFA_Barcode* arc);
   ~CJX_Barcode() override;
 
-  JS_PROP(charEncoding);
-  JS_PROP(checksum);
-  JS_PROP(dataColumnCount);
-  JS_PROP(dataLength);
-  JS_PROP(dataPrep);
-  JS_PROP(dataRowCount);
-  JS_PROP(endChar);
-  JS_PROP(errorCorrectionLevel);
-  JS_PROP(moduleHeight);
-  JS_PROP(moduleWidth);
-  JS_PROP(printCheckDigit);
-  JS_PROP(rowColumnRatio);
-  JS_PROP(startChar);
-  JS_PROP(textLocation);
-  JS_PROP(truncate);
-  JS_PROP(type);
-  JS_PROP(upsMode);
-  JS_PROP(use);
-  JS_PROP(usehref);
-  JS_PROP(wideNarrowRatio);
+  JSE_PROP(charEncoding);
+  JSE_PROP(checksum);
+  JSE_PROP(dataColumnCount);
+  JSE_PROP(dataLength);
+  JSE_PROP(dataPrep);
+  JSE_PROP(dataRowCount);
+  JSE_PROP(endChar);
+  JSE_PROP(errorCorrectionLevel);
+  JSE_PROP(moduleHeight);
+  JSE_PROP(moduleWidth);
+  JSE_PROP(printCheckDigit);
+  JSE_PROP(rowColumnRatio);
+  JSE_PROP(startChar);
+  JSE_PROP(textLocation);
+  JSE_PROP(truncate);
+  JSE_PROP(type);
+  JSE_PROP(upsMode);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
+  JSE_PROP(wideNarrowRatio);
 };
 
 #endif  // FXJS_XFA_CJX_BARCODE_H_
diff --git a/fxjs/xfa/cjx_bind.h b/fxjs/xfa/cjx_bind.h
index 9fc8ab8..ab22143 100644
--- a/fxjs/xfa/cjx_bind.h
+++ b/fxjs/xfa/cjx_bind.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_BIND_H_
 #define FXJS_XFA_CJX_BIND_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Bind;
@@ -16,12 +17,12 @@
   explicit CJX_Bind(CXFA_Bind* node);
   ~CJX_Bind() override;
 
-  JS_PROP(contentType);
-  JS_PROP(match);
-  JS_PROP(ref);
-  JS_PROP(transferEncoding);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(contentType);
+  JSE_PROP(match);
+  JSE_PROP(ref);
+  JSE_PROP(transferEncoding);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_BIND_H_
diff --git a/fxjs/xfa/cjx_binditems.h b/fxjs/xfa/cjx_binditems.h
index e47b3fa..1b27d44 100644
--- a/fxjs/xfa/cjx_binditems.h
+++ b/fxjs/xfa/cjx_binditems.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_BINDITEMS_H_
 #define FXJS_XFA_CJX_BINDITEMS_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_BindItems;
@@ -16,9 +17,9 @@
   explicit CJX_BindItems(CXFA_BindItems* node);
   ~CJX_BindItems() override;
 
-  JS_PROP(connection);
-  JS_PROP(labelRef);
-  JS_PROP(valueRef);
+  JSE_PROP(connection);
+  JSE_PROP(labelRef);
+  JSE_PROP(valueRef);
 };
 
 #endif  // FXJS_XFA_CJX_BINDITEMS_H_
diff --git a/fxjs/xfa/cjx_bookend.h b/fxjs/xfa/cjx_bookend.h
index 0165091..fa3f1ca 100644
--- a/fxjs/xfa/cjx_bookend.h
+++ b/fxjs/xfa/cjx_bookend.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_BOOKEND_H_
 #define FXJS_XFA_CJX_BOOKEND_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Bookend;
@@ -16,10 +17,10 @@
   explicit CJX_Bookend(CXFA_Bookend* node);
   ~CJX_Bookend() override;
 
-  JS_PROP(leader);
-  JS_PROP(trailer);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(leader);
+  JSE_PROP(trailer);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_BOOKEND_H_
diff --git a/fxjs/xfa/cjx_boolean.h b/fxjs/xfa/cjx_boolean.h
index c90291a..4242c55 100644
--- a/fxjs/xfa/cjx_boolean.h
+++ b/fxjs/xfa/cjx_boolean.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_BOOLEAN_H_
 #define FXJS_XFA_CJX_BOOLEAN_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_content.h"
 
 class CXFA_Boolean;
@@ -16,10 +17,10 @@
   explicit CJX_Boolean(CXFA_Boolean* node);
   ~CJX_Boolean() override;
 
-  JS_PROP(use);
-  JS_PROP(defaultValue); /* {default} */
-  JS_PROP(usehref);
-  JS_PROP(value);
+  JSE_PROP(use);
+  JSE_PROP(defaultValue); /* {default} */
+  JSE_PROP(usehref);
+  JSE_PROP(value);
 };
 
 #endif  // FXJS_XFA_CJX_BOOLEAN_H_
diff --git a/fxjs/xfa/cjx_border.h b/fxjs/xfa/cjx_border.h
index b95ca4c..abeb577 100644
--- a/fxjs/xfa/cjx_border.h
+++ b/fxjs/xfa/cjx_border.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_BORDER_H_
 #define FXJS_XFA_CJX_BORDER_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Border;
@@ -16,12 +17,12 @@
   explicit CJX_Border(CXFA_Border* node);
   ~CJX_Border() override;
 
-  JS_PROP(breakValue); /* break */
-  JS_PROP(hand);
-  JS_PROP(presence);
-  JS_PROP(relevant);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(breakValue); /* break */
+  JSE_PROP(hand);
+  JSE_PROP(presence);
+  JSE_PROP(relevant);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_BORDER_H_
diff --git a/fxjs/xfa/cjx_break.h b/fxjs/xfa/cjx_break.h
index 86cb249..c9090d9 100644
--- a/fxjs/xfa/cjx_break.h
+++ b/fxjs/xfa/cjx_break.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_BREAK_H_
 #define FXJS_XFA_CJX_BREAK_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Break;
@@ -16,18 +17,18 @@
   explicit CJX_Break(CXFA_Break* node);
   ~CJX_Break() override;
 
-  JS_PROP(after);
-  JS_PROP(afterTarget);
-  JS_PROP(before);
-  JS_PROP(beforeTarget);
-  JS_PROP(bookendLeader);
-  JS_PROP(bookendTrailer);
-  JS_PROP(overflowLeader);
-  JS_PROP(overflowTarget);
-  JS_PROP(overflowTrailer);
-  JS_PROP(startNew);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(after);
+  JSE_PROP(afterTarget);
+  JSE_PROP(before);
+  JSE_PROP(beforeTarget);
+  JSE_PROP(bookendLeader);
+  JSE_PROP(bookendTrailer);
+  JSE_PROP(overflowLeader);
+  JSE_PROP(overflowTarget);
+  JSE_PROP(overflowTrailer);
+  JSE_PROP(startNew);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_BREAK_H_
diff --git a/fxjs/xfa/cjx_breakafter.h b/fxjs/xfa/cjx_breakafter.h
index aa1eccc..7028c51 100644
--- a/fxjs/xfa/cjx_breakafter.h
+++ b/fxjs/xfa/cjx_breakafter.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_BREAKAFTER_H_
 #define FXJS_XFA_CJX_BREAKAFTER_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_BreakAfter;
@@ -16,13 +17,13 @@
   explicit CJX_BreakAfter(CXFA_BreakAfter* node);
   ~CJX_BreakAfter() override;
 
-  JS_PROP(leader);
-  JS_PROP(startNew);
-  JS_PROP(target);
-  JS_PROP(targetType);
-  JS_PROP(trailer);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(leader);
+  JSE_PROP(startNew);
+  JSE_PROP(target);
+  JSE_PROP(targetType);
+  JSE_PROP(trailer);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_BREAKAFTER_H_
diff --git a/fxjs/xfa/cjx_breakbefore.h b/fxjs/xfa/cjx_breakbefore.h
index 3f8dbbb..b4251c9 100644
--- a/fxjs/xfa/cjx_breakbefore.h
+++ b/fxjs/xfa/cjx_breakbefore.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_BREAKBEFORE_H_
 #define FXJS_XFA_CJX_BREAKBEFORE_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_BreakBefore;
@@ -16,13 +17,13 @@
   explicit CJX_BreakBefore(CXFA_BreakBefore* node);
   ~CJX_BreakBefore() override;
 
-  JS_PROP(leader);
-  JS_PROP(startNew);
-  JS_PROP(target);
-  JS_PROP(targetType);
-  JS_PROP(trailer);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(leader);
+  JSE_PROP(startNew);
+  JSE_PROP(target);
+  JSE_PROP(targetType);
+  JSE_PROP(trailer);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_BREAKBEFORE_H_
diff --git a/fxjs/xfa/cjx_button.h b/fxjs/xfa/cjx_button.h
index 3732aae..bf38aa4 100644
--- a/fxjs/xfa/cjx_button.h
+++ b/fxjs/xfa/cjx_button.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_BUTTON_H_
 #define FXJS_XFA_CJX_BUTTON_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Button;
@@ -16,9 +17,9 @@
   explicit CJX_Button(CXFA_Button* node);
   ~CJX_Button() override;
 
-  JS_PROP(highlight);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(highlight);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_BUTTON_H_
diff --git a/fxjs/xfa/cjx_calculate.h b/fxjs/xfa/cjx_calculate.h
index 2410f1b..1b4c149 100644
--- a/fxjs/xfa/cjx_calculate.h
+++ b/fxjs/xfa/cjx_calculate.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_CALCULATE_H_
 #define FXJS_XFA_CJX_CALCULATE_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Calculate;
@@ -16,9 +17,9 @@
   explicit CJX_Calculate(CXFA_Calculate* node);
   ~CJX_Calculate() override;
 
-  JS_PROP(override);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(override);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_CALCULATE_H_
diff --git a/fxjs/xfa/cjx_caption.h b/fxjs/xfa/cjx_caption.h
index 9af6915..d924147 100644
--- a/fxjs/xfa/cjx_caption.h
+++ b/fxjs/xfa/cjx_caption.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_CAPTION_H_
 #define FXJS_XFA_CJX_CAPTION_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Caption;
@@ -16,11 +17,11 @@
   explicit CJX_Caption(CXFA_Caption* node);
   ~CJX_Caption() override;
 
-  JS_PROP(placement);
-  JS_PROP(presence);
-  JS_PROP(reserve);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(placement);
+  JSE_PROP(presence);
+  JSE_PROP(reserve);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_CAPTION_H_
diff --git a/fxjs/xfa/cjx_certificate.h b/fxjs/xfa/cjx_certificate.h
index af62b91..8be791d 100644
--- a/fxjs/xfa/cjx_certificate.h
+++ b/fxjs/xfa/cjx_certificate.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_CERTIFICATE_H_
 #define FXJS_XFA_CJX_CERTIFICATE_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_textnode.h"
 
 class CXFA_Certificate;
@@ -16,8 +17,8 @@
   explicit CJX_Certificate(CXFA_Certificate* node);
   ~CJX_Certificate() override;
 
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_CERTIFICATE_H_
diff --git a/fxjs/xfa/cjx_certificates.h b/fxjs/xfa/cjx_certificates.h
index 160d88d..42ce885 100644
--- a/fxjs/xfa/cjx_certificates.h
+++ b/fxjs/xfa/cjx_certificates.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_CERTIFICATES_H_
 #define FXJS_XFA_CJX_CERTIFICATES_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Certificates;
@@ -16,11 +17,11 @@
   explicit CJX_Certificates(CXFA_Certificates* node);
   ~CJX_Certificates() override;
 
-  JS_PROP(credentialServerPolicy);
-  JS_PROP(url);
-  JS_PROP(urlPolicy);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(credentialServerPolicy);
+  JSE_PROP(url);
+  JSE_PROP(urlPolicy);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_CERTIFICATES_H_
diff --git a/fxjs/xfa/cjx_checkbutton.h b/fxjs/xfa/cjx_checkbutton.h
index 18cca68..3b78d71 100644
--- a/fxjs/xfa/cjx_checkbutton.h
+++ b/fxjs/xfa/cjx_checkbutton.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_CHECKBUTTON_H_
 #define FXJS_XFA_CJX_CHECKBUTTON_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_CheckButton;
@@ -16,12 +17,12 @@
   explicit CJX_CheckButton(CXFA_CheckButton* node);
   ~CJX_CheckButton() override;
 
-  JS_PROP(allowNeutral);
-  JS_PROP(mark);
-  JS_PROP(shape);
-  JS_PROP(size);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(allowNeutral);
+  JSE_PROP(mark);
+  JSE_PROP(shape);
+  JSE_PROP(size);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_CHECKBUTTON_H_
diff --git a/fxjs/xfa/cjx_choicelist.h b/fxjs/xfa/cjx_choicelist.h
index 40336f2..3bf947c 100644
--- a/fxjs/xfa/cjx_choicelist.h
+++ b/fxjs/xfa/cjx_choicelist.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_CHOICELIST_H_
 #define FXJS_XFA_CJX_CHOICELIST_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_ChoiceList;
@@ -16,11 +17,11 @@
   explicit CJX_ChoiceList(CXFA_ChoiceList* node);
   ~CJX_ChoiceList() override;
 
-  JS_PROP(commitOn);
-  JS_PROP(open);
-  JS_PROP(textEntry);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(commitOn);
+  JSE_PROP(open);
+  JSE_PROP(textEntry);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_CHOICELIST_H_
diff --git a/fxjs/xfa/cjx_color.h b/fxjs/xfa/cjx_color.h
index c625753..e048aca 100644
--- a/fxjs/xfa/cjx_color.h
+++ b/fxjs/xfa/cjx_color.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_COLOR_H_
 #define FXJS_XFA_CJX_COLOR_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Color;
@@ -16,10 +17,10 @@
   explicit CJX_Color(CXFA_Color* node);
   ~CJX_Color() override;
 
-  JS_PROP(cSpace);
-  JS_PROP(use);
-  JS_PROP(usehref);
-  JS_PROP(value);
+  JSE_PROP(cSpace);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
+  JSE_PROP(value);
 };
 
 #endif  // FXJS_XFA_CJX_COLOR_H_
diff --git a/fxjs/xfa/cjx_comb.h b/fxjs/xfa/cjx_comb.h
index 1c8d631..abcf8c0 100644
--- a/fxjs/xfa/cjx_comb.h
+++ b/fxjs/xfa/cjx_comb.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_COMB_H_
 #define FXJS_XFA_CJX_COMB_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Comb;
@@ -16,9 +17,9 @@
   explicit CJX_Comb(CXFA_Comb* node);
   ~CJX_Comb() override;
 
-  JS_PROP(numberOfCells);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(numberOfCells);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_COMB_H_
diff --git a/fxjs/xfa/cjx_command.h b/fxjs/xfa/cjx_command.h
index c4605a3..e645baf 100644
--- a/fxjs/xfa/cjx_command.h
+++ b/fxjs/xfa/cjx_command.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_COMMAND_H_
 #define FXJS_XFA_CJX_COMMAND_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Command;
@@ -16,9 +17,9 @@
   explicit CJX_Command(CXFA_Command* node);
   ~CJX_Command() override;
 
-  JS_PROP(timeout);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(timeout);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_COMMAND_H_
diff --git a/fxjs/xfa/cjx_connect.h b/fxjs/xfa/cjx_connect.h
index 2c27917..77cee4f 100644
--- a/fxjs/xfa/cjx_connect.h
+++ b/fxjs/xfa/cjx_connect.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_CONNECT_H_
 #define FXJS_XFA_CJX_CONNECT_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Connect;
@@ -16,13 +17,13 @@
   explicit CJX_Connect(CXFA_Connect* node);
   ~CJX_Connect() override;
 
-  JS_PROP(connection);
-  JS_PROP(delayedOpen);
-  JS_PROP(ref);
-  JS_PROP(timeout);
-  JS_PROP(usage);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(connection);
+  JSE_PROP(delayedOpen);
+  JSE_PROP(ref);
+  JSE_PROP(timeout);
+  JSE_PROP(usage);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_CONNECT_H_
diff --git a/fxjs/xfa/cjx_connectstring.h b/fxjs/xfa/cjx_connectstring.h
index 969c92b..f40a867 100644
--- a/fxjs/xfa/cjx_connectstring.h
+++ b/fxjs/xfa/cjx_connectstring.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_CONNECTSTRING_H_
 #define FXJS_XFA_CJX_CONNECTSTRING_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_textnode.h"
 
 class CXFA_ConnectString;
@@ -16,8 +17,8 @@
   explicit CJX_ConnectString(CXFA_ConnectString* node);
   ~CJX_ConnectString() override;
 
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_CONNECTSTRING_H_
diff --git a/fxjs/xfa/cjx_container.h b/fxjs/xfa/cjx_container.h
index e116358..a35c8db 100644
--- a/fxjs/xfa/cjx_container.h
+++ b/fxjs/xfa/cjx_container.h
@@ -7,7 +7,7 @@
 #ifndef FXJS_XFA_CJX_CONTAINER_H_
 #define FXJS_XFA_CJX_CONTAINER_H_
 
-#include "fxjs/cjx_define.h"
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Node;
@@ -17,8 +17,8 @@
   explicit CJX_Container(CXFA_Node* node);
   ~CJX_Container() override;
 
-  JS_METHOD(getDelta, CJX_Container);
-  JS_METHOD(getDeltas, CJX_Container);
+  JSE_METHOD(getDelta, CJX_Container);
+  JSE_METHOD(getDeltas, CJX_Container);
 
  private:
   static const CJX_MethodSpec MethodSpecs[];
diff --git a/fxjs/xfa/cjx_content.h b/fxjs/xfa/cjx_content.h
index 351728e..5976b09 100644
--- a/fxjs/xfa/cjx_content.h
+++ b/fxjs/xfa/cjx_content.h
@@ -7,7 +7,7 @@
 #ifndef FXJS_XFA_CJX_CONTENT_H_
 #define FXJS_XFA_CJX_CONTENT_H_
 
-#include "fxjs/cjx_define.h"
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_object.h"
 
 class CXFA_Content;
diff --git a/fxjs/xfa/cjx_contentarea.h b/fxjs/xfa/cjx_contentarea.h
index d97e108..aeed6b6 100644
--- a/fxjs/xfa/cjx_contentarea.h
+++ b/fxjs/xfa/cjx_contentarea.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_CONTENTAREA_H_
 #define FXJS_XFA_CJX_CONTENTAREA_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_container.h"
 
 class CXFA_ContentArea;
@@ -16,11 +17,11 @@
   explicit CJX_ContentArea(CXFA_ContentArea* node);
   ~CJX_ContentArea() override;
 
-  JS_PROP(relevant);
-  JS_PROP(use);
-  JS_PROP(usehref);
-  JS_PROP(x);
-  JS_PROP(y);
+  JSE_PROP(relevant);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
+  JSE_PROP(x);
+  JSE_PROP(y);
 };
 
 #endif  // FXJS_XFA_CJX_CONTENTAREA_H_
diff --git a/fxjs/xfa/cjx_corner.h b/fxjs/xfa/cjx_corner.h
index 83251a5..8db2524 100644
--- a/fxjs/xfa/cjx_corner.h
+++ b/fxjs/xfa/cjx_corner.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_CORNER_H_
 #define FXJS_XFA_CJX_CORNER_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Corner;
@@ -16,14 +17,14 @@
   explicit CJX_Corner(CXFA_Corner* node);
   ~CJX_Corner() override;
 
-  JS_PROP(inverted);
-  JS_PROP(join);
-  JS_PROP(presence);
-  JS_PROP(radius);
-  JS_PROP(stroke);
-  JS_PROP(thickness);
-  JS_PROP(usehref);
-  JS_PROP(use);
+  JSE_PROP(inverted);
+  JSE_PROP(join);
+  JSE_PROP(presence);
+  JSE_PROP(radius);
+  JSE_PROP(stroke);
+  JSE_PROP(thickness);
+  JSE_PROP(usehref);
+  JSE_PROP(use);
 };
 
 #endif  // FXJS_XFA_CJX_CORNER_H_
diff --git a/fxjs/xfa/cjx_datavalue.h b/fxjs/xfa/cjx_datavalue.h
index 16e8ed4..00bf5cf 100644
--- a/fxjs/xfa/cjx_datavalue.h
+++ b/fxjs/xfa/cjx_datavalue.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_DATAVALUE_H_
 #define FXJS_XFA_CJX_DATAVALUE_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_DataValue;
@@ -16,11 +17,11 @@
   explicit CJX_DataValue(CXFA_DataValue* node);
   ~CJX_DataValue() override;
 
-  JS_PROP(defaultValue); /* {default} */
-  JS_PROP(contains);
-  JS_PROP(contentType);
-  JS_PROP(isNull);
-  JS_PROP(value);
+  JSE_PROP(defaultValue); /* {default} */
+  JSE_PROP(contains);
+  JSE_PROP(contentType);
+  JSE_PROP(isNull);
+  JSE_PROP(value);
 };
 
 #endif  // FXJS_XFA_CJX_DATAVALUE_H_
diff --git a/fxjs/xfa/cjx_datawindow.h b/fxjs/xfa/cjx_datawindow.h
index 0541ef1..d8e697d 100644
--- a/fxjs/xfa/cjx_datawindow.h
+++ b/fxjs/xfa/cjx_datawindow.h
@@ -7,7 +7,7 @@
 #ifndef FXJS_XFA_CJX_DATAWINDOW_H_
 #define FXJS_XFA_CJX_DATAWINDOW_H_
 
-#include "fxjs/cjx_define.h"
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_object.h"
 #include "xfa/fxfa/fxfa_basic.h"
 
@@ -19,15 +19,15 @@
   explicit CJX_DataWindow(CScript_DataWindow* window);
   ~CJX_DataWindow() override;
 
-  JS_METHOD(gotoRecord, CJX_DataWindow);
-  JS_METHOD(isRecordGroup, CJX_DataWindow);
-  JS_METHOD(moveCurrentRecord, CJX_DataWindow);
-  JS_METHOD(record, CJX_DataWindow);
+  JSE_METHOD(gotoRecord, CJX_DataWindow);
+  JSE_METHOD(isRecordGroup, CJX_DataWindow);
+  JSE_METHOD(moveCurrentRecord, CJX_DataWindow);
+  JSE_METHOD(record, CJX_DataWindow);
 
-  JS_PROP(currentRecordNumber);
-  JS_PROP(isDefined);
-  JS_PROP(recordsAfter);
-  JS_PROP(recordsBefore);
+  JSE_PROP(currentRecordNumber);
+  JSE_PROP(isDefined);
+  JSE_PROP(recordsAfter);
+  JSE_PROP(recordsBefore);
 
  private:
   static const CJX_MethodSpec MethodSpecs[];
diff --git a/fxjs/xfa/cjx_date.h b/fxjs/xfa/cjx_date.h
index 96dfd0e..c788937 100644
--- a/fxjs/xfa/cjx_date.h
+++ b/fxjs/xfa/cjx_date.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_DATE_H_
 #define FXJS_XFA_CJX_DATE_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_content.h"
 
 class CXFA_Date;
@@ -16,10 +17,10 @@
   explicit CJX_Date(CXFA_Date* node);
   ~CJX_Date() override;
 
-  JS_PROP(defaultValue); /* {default} */
-  JS_PROP(use);
-  JS_PROP(usehref);
-  JS_PROP(value);
+  JSE_PROP(defaultValue); /* {default} */
+  JSE_PROP(use);
+  JSE_PROP(usehref);
+  JSE_PROP(value);
 };
 
 #endif  // FXJS_XFA_CJX_DATE_H_
diff --git a/fxjs/xfa/cjx_datetime.h b/fxjs/xfa/cjx_datetime.h
index 9cf7d2f..1079660 100644
--- a/fxjs/xfa/cjx_datetime.h
+++ b/fxjs/xfa/cjx_datetime.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_DATETIME_H_
 #define FXJS_XFA_CJX_DATETIME_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_DateTime;
@@ -16,10 +17,10 @@
   explicit CJX_DateTime(CXFA_DateTime* node);
   ~CJX_DateTime() override;
 
-  JS_PROP(defaultValue); /* {default} */
-  JS_PROP(use);
-  JS_PROP(usehref);
-  JS_PROP(value);
+  JSE_PROP(defaultValue); /* {default} */
+  JSE_PROP(use);
+  JSE_PROP(usehref);
+  JSE_PROP(value);
 };
 
 #endif  // FXJS_XFA_CJX_DATETIME_H_
diff --git a/fxjs/xfa/cjx_datetimeedit.h b/fxjs/xfa/cjx_datetimeedit.h
index 067c6bb..d90a4cf 100644
--- a/fxjs/xfa/cjx_datetimeedit.h
+++ b/fxjs/xfa/cjx_datetimeedit.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_DATETIMEEDIT_H_
 #define FXJS_XFA_CJX_DATETIMEEDIT_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_DateTimeEdit;
@@ -16,9 +17,9 @@
   explicit CJX_DateTimeEdit(CXFA_DateTimeEdit* node);
   ~CJX_DateTimeEdit() override;
 
-  JS_PROP(hScrollPolicy);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(hScrollPolicy);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_DATETIMEEDIT_H_
diff --git a/fxjs/xfa/cjx_decimal.h b/fxjs/xfa/cjx_decimal.h
index 5753112..b7ddec9 100644
--- a/fxjs/xfa/cjx_decimal.h
+++ b/fxjs/xfa/cjx_decimal.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_DECIMAL_H_
 #define FXJS_XFA_CJX_DECIMAL_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_content.h"
 
 class CXFA_Decimal;
@@ -16,12 +17,12 @@
   explicit CJX_Decimal(CXFA_Decimal* node);
   ~CJX_Decimal() override;
 
-  JS_PROP(defaultValue); /* {default} */
-  JS_PROP(fracDigits);
-  JS_PROP(leadDigits);
-  JS_PROP(use);
-  JS_PROP(usehref);
-  JS_PROP(value);
+  JSE_PROP(defaultValue); /* {default} */
+  JSE_PROP(fracDigits);
+  JSE_PROP(leadDigits);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
+  JSE_PROP(value);
 };
 
 #endif  // FXJS_XFA_CJX_DECIMAL_H_
diff --git a/fxjs/xfa/cjx_defaultui.h b/fxjs/xfa/cjx_defaultui.h
index 8b8983b..29954fd 100644
--- a/fxjs/xfa/cjx_defaultui.h
+++ b/fxjs/xfa/cjx_defaultui.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_DEFAULTUI_H_
 #define FXJS_XFA_CJX_DEFAULTUI_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_DefaultUi;
@@ -16,8 +17,8 @@
   explicit CJX_DefaultUi(CXFA_DefaultUi* node);
   ~CJX_DefaultUi() override;
 
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_DEFAULTUI_H_
diff --git a/fxjs/xfa/cjx_delete.h b/fxjs/xfa/cjx_delete.h
index 413a140..e89b1e4 100644
--- a/fxjs/xfa/cjx_delete.h
+++ b/fxjs/xfa/cjx_delete.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_DELETE_H_
 #define FXJS_XFA_CJX_DELETE_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_textnode.h"
 
 class CXFA_Delete;
@@ -16,8 +17,8 @@
   explicit CJX_Delete(CXFA_Delete* node);
   ~CJX_Delete() override;
 
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_DELETE_H_
diff --git a/fxjs/xfa/cjx_delta.h b/fxjs/xfa/cjx_delta.h
index 4d67763..9458599 100644
--- a/fxjs/xfa/cjx_delta.h
+++ b/fxjs/xfa/cjx_delta.h
@@ -7,7 +7,7 @@
 #ifndef FXJS_XFA_CJX_DELTA_H_
 #define FXJS_XFA_CJX_DELTA_H_
 
-#include "fxjs/cjx_define.h"
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_object.h"
 
 class CXFA_Delta;
@@ -17,11 +17,11 @@
   explicit CJX_Delta(CXFA_Delta* delta);
   ~CJX_Delta() override;
 
-  JS_METHOD(restore, CJX_Delta);
+  JSE_METHOD(restore, CJX_Delta);
 
-  JS_PROP(currentValue);
-  JS_PROP(savedValue);
-  JS_PROP(target);
+  JSE_PROP(currentValue);
+  JSE_PROP(savedValue);
+  JSE_PROP(target);
 
  private:
   static const CJX_MethodSpec MethodSpecs[];
diff --git a/fxjs/xfa/cjx_desc.h b/fxjs/xfa/cjx_desc.h
index 4218ed2..d30b222 100644
--- a/fxjs/xfa/cjx_desc.h
+++ b/fxjs/xfa/cjx_desc.h
@@ -7,7 +7,7 @@
 #ifndef FXJS_XFA_CJX_DESC_H_
 #define FXJS_XFA_CJX_DESC_H_
 
-#include "fxjs/cjx_define.h"
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Desc;
@@ -17,10 +17,10 @@
   explicit CJX_Desc(CXFA_Desc* desc);
   ~CJX_Desc() override;
 
-  JS_METHOD(metadata, CJX_Desc);
+  JSE_METHOD(metadata, CJX_Desc);
 
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 
  private:
   static const CJX_MethodSpec MethodSpecs[];
diff --git a/fxjs/xfa/cjx_digestmethod.h b/fxjs/xfa/cjx_digestmethod.h
index d14e6f1..f4050f2 100644
--- a/fxjs/xfa/cjx_digestmethod.h
+++ b/fxjs/xfa/cjx_digestmethod.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_DIGESTMETHOD_H_
 #define FXJS_XFA_CJX_DIGESTMETHOD_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_DigestMethod;
@@ -16,8 +17,8 @@
   explicit CJX_DigestMethod(CXFA_DigestMethod* node);
   ~CJX_DigestMethod() override;
 
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_DIGESTMETHOD_H_
diff --git a/fxjs/xfa/cjx_digestmethods.h b/fxjs/xfa/cjx_digestmethods.h
index b3addc3..c616584 100644
--- a/fxjs/xfa/cjx_digestmethods.h
+++ b/fxjs/xfa/cjx_digestmethods.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_DIGESTMETHODS_H_
 #define FXJS_XFA_CJX_DIGESTMETHODS_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_DigestMethods;
@@ -16,9 +17,9 @@
   explicit CJX_DigestMethods(CXFA_DigestMethods* node);
   ~CJX_DigestMethods() override;
 
-  JS_PROP(type);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(type);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_DIGESTMETHODS_H_
diff --git a/fxjs/xfa/cjx_draw.h b/fxjs/xfa/cjx_draw.h
index 1d5603a..508d3e1 100644
--- a/fxjs/xfa/cjx_draw.h
+++ b/fxjs/xfa/cjx_draw.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_DRAW_H_
 #define FXJS_XFA_CJX_DRAW_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_container.h"
 
 class CXFA_Draw;
@@ -16,26 +17,26 @@
   explicit CJX_Draw(CXFA_Draw* node);
   ~CJX_Draw() override;
 
-  JS_PROP(defaultValue); /* {default} */
-  JS_PROP(anchorType);
-  JS_PROP(colSpan);
-  JS_PROP(h);
-  JS_PROP(hAlign);
-  JS_PROP(locale);
-  JS_PROP(maxH);
-  JS_PROP(maxW);
-  JS_PROP(minH);
-  JS_PROP(minW);
-  JS_PROP(presence);
-  JS_PROP(rawValue);
-  JS_PROP(relevant);
-  JS_PROP(rotate);
-  JS_PROP(use);
-  JS_PROP(usehref);
-  JS_PROP(vAlign);
-  JS_PROP(w);
-  JS_PROP(x);
-  JS_PROP(y);
+  JSE_PROP(defaultValue); /* {default} */
+  JSE_PROP(anchorType);
+  JSE_PROP(colSpan);
+  JSE_PROP(h);
+  JSE_PROP(hAlign);
+  JSE_PROP(locale);
+  JSE_PROP(maxH);
+  JSE_PROP(maxW);
+  JSE_PROP(minH);
+  JSE_PROP(minW);
+  JSE_PROP(presence);
+  JSE_PROP(rawValue);
+  JSE_PROP(relevant);
+  JSE_PROP(rotate);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
+  JSE_PROP(vAlign);
+  JSE_PROP(w);
+  JSE_PROP(x);
+  JSE_PROP(y);
 };
 
 #endif  // FXJS_XFA_CJX_DRAW_H_
diff --git a/fxjs/xfa/cjx_edge.h b/fxjs/xfa/cjx_edge.h
index ef4ddeb..c830a8d 100644
--- a/fxjs/xfa/cjx_edge.h
+++ b/fxjs/xfa/cjx_edge.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_EDGE_H_
 #define FXJS_XFA_CJX_EDGE_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Edge;
@@ -16,12 +17,12 @@
   explicit CJX_Edge(CXFA_Edge* node);
   ~CJX_Edge() override;
 
-  JS_PROP(cap);
-  JS_PROP(presence);
-  JS_PROP(stroke);
-  JS_PROP(thickness);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(cap);
+  JSE_PROP(presence);
+  JSE_PROP(stroke);
+  JSE_PROP(thickness);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_EDGE_H_
diff --git a/fxjs/xfa/cjx_encoding.h b/fxjs/xfa/cjx_encoding.h
index ea82333..ade3e38 100644
--- a/fxjs/xfa/cjx_encoding.h
+++ b/fxjs/xfa/cjx_encoding.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_ENCODING_H_
 #define FXJS_XFA_CJX_ENCODING_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Encoding;
@@ -16,8 +17,8 @@
   explicit CJX_Encoding(CXFA_Encoding* node);
   ~CJX_Encoding() override;
 
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_ENCODING_H_
diff --git a/fxjs/xfa/cjx_encodings.h b/fxjs/xfa/cjx_encodings.h
index da4f617..e2f4376 100644
--- a/fxjs/xfa/cjx_encodings.h
+++ b/fxjs/xfa/cjx_encodings.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_ENCODINGS_H_
 #define FXJS_XFA_CJX_ENCODINGS_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Encodings;
@@ -16,9 +17,9 @@
   explicit CJX_Encodings(CXFA_Encodings* node);
   ~CJX_Encodings() override;
 
-  JS_PROP(type);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(type);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_ENCODINGS_H_
diff --git a/fxjs/xfa/cjx_encrypt.h b/fxjs/xfa/cjx_encrypt.h
index 85fac15..acbccf7 100644
--- a/fxjs/xfa/cjx_encrypt.h
+++ b/fxjs/xfa/cjx_encrypt.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_ENCRYPT_H_
 #define FXJS_XFA_CJX_ENCRYPT_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Encrypt;
@@ -16,9 +17,9 @@
   explicit CJX_Encrypt(CXFA_Encrypt* node);
   ~CJX_Encrypt() override;
 
-  JS_PROP(format);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(format);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_ENCRYPT_H_
diff --git a/fxjs/xfa/cjx_event.h b/fxjs/xfa/cjx_event.h
index 6c6d920..d8c8b03 100644
--- a/fxjs/xfa/cjx_event.h
+++ b/fxjs/xfa/cjx_event.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_EVENT_H_
 #define FXJS_XFA_CJX_EVENT_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Event;
@@ -16,10 +17,10 @@
   explicit CJX_Event(CXFA_Event* node);
   ~CJX_Event() override;
 
-  JS_PROP(activity);
-  JS_PROP(ref);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(activity);
+  JSE_PROP(ref);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_EVENT_H_
diff --git a/fxjs/xfa/cjx_eventpseudomodel.h b/fxjs/xfa/cjx_eventpseudomodel.h
index b30c659..c52871e 100644
--- a/fxjs/xfa/cjx_eventpseudomodel.h
+++ b/fxjs/xfa/cjx_eventpseudomodel.h
@@ -7,7 +7,7 @@
 #ifndef FXJS_XFA_CJX_EVENTPSEUDOMODEL_H_
 #define FXJS_XFA_CJX_EVENTPSEUDOMODEL_H_
 
-#include "fxjs/cjx_define.h"
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_object.h"
 
 class CFXJSE_Value;
@@ -38,26 +38,26 @@
   explicit CJX_EventPseudoModel(CScript_EventPseudoModel* model);
   ~CJX_EventPseudoModel() override;
 
-  JS_METHOD(emit, CJX_EventPseudoModel);
-  JS_METHOD(reset, CJX_EventPseudoModel);
+  JSE_METHOD(emit, CJX_EventPseudoModel);
+  JSE_METHOD(reset, CJX_EventPseudoModel);
 
-  JS_PROP(cancelAction);
-  JS_PROP(change);
-  JS_PROP(commitKey);
-  JS_PROP(fullText);
-  JS_PROP(keyDown);
-  JS_PROP(modifier);
-  JS_PROP(newContentType);
-  JS_PROP(newText);
-  JS_PROP(prevContentType);
-  JS_PROP(prevText);
-  JS_PROP(reenter);
-  JS_PROP(selEnd);
-  JS_PROP(selStart);
-  JS_PROP(shift);
-  JS_PROP(soapFaultCode);
-  JS_PROP(soapFaultString);
-  JS_PROP(target);
+  JSE_PROP(cancelAction);
+  JSE_PROP(change);
+  JSE_PROP(commitKey);
+  JSE_PROP(fullText);
+  JSE_PROP(keyDown);
+  JSE_PROP(modifier);
+  JSE_PROP(newContentType);
+  JSE_PROP(newText);
+  JSE_PROP(prevContentType);
+  JSE_PROP(prevText);
+  JSE_PROP(reenter);
+  JSE_PROP(selEnd);
+  JSE_PROP(selStart);
+  JSE_PROP(shift);
+  JSE_PROP(soapFaultCode);
+  JSE_PROP(soapFaultString);
+  JSE_PROP(target);
 
  private:
   void Property(CFXJSE_Value* pValue, XFA_Event dwFlag, bool bSetting);
diff --git a/fxjs/xfa/cjx_exclgroup.h b/fxjs/xfa/cjx_exclgroup.h
index fc65400..492fb12 100644
--- a/fxjs/xfa/cjx_exclgroup.h
+++ b/fxjs/xfa/cjx_exclgroup.h
@@ -7,7 +7,7 @@
 #ifndef FXJS_XFA_CJX_EXCLGROUP_H_
 #define FXJS_XFA_CJX_EXCLGROUP_H_
 
-#include "fxjs/cjx_define.h"
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_ExclGroup;
@@ -17,40 +17,40 @@
   explicit CJX_ExclGroup(CXFA_ExclGroup* group);
   ~CJX_ExclGroup() override;
 
-  JS_METHOD(execCalculate, CJX_ExclGroup);
-  JS_METHOD(execEvent, CJX_ExclGroup);
-  JS_METHOD(execInitialize, CJX_ExclGroup);
-  JS_METHOD(execValidate, CJX_ExclGroup);
-  JS_METHOD(selectedMember, CJX_ExclGroup);
+  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);
 
-  JS_PROP(defaultValue); /* {default} */
-  JS_PROP(access);
-  JS_PROP(accessKey);
-  JS_PROP(anchorType);
-  JS_PROP(borderColor);
-  JS_PROP(borderWidth);
-  JS_PROP(colSpan);
-  JS_PROP(fillColor);
-  JS_PROP(h);
-  JS_PROP(hAlign);
-  JS_PROP(layout);
-  JS_PROP(mandatory);
-  JS_PROP(mandatoryMessage);
-  JS_PROP(maxH);
-  JS_PROP(maxW);
-  JS_PROP(minH);
-  JS_PROP(minW);
-  JS_PROP(presence);
-  JS_PROP(rawValue);
-  JS_PROP(relevant);
-  JS_PROP(transient);
-  JS_PROP(use);
-  JS_PROP(usehref);
-  JS_PROP(validationMessage);
-  JS_PROP(vAlign);
-  JS_PROP(w);
-  JS_PROP(x);
-  JS_PROP(y);
+  JSE_PROP(defaultValue); /* {default} */
+  JSE_PROP(access);
+  JSE_PROP(accessKey);
+  JSE_PROP(anchorType);
+  JSE_PROP(borderColor);
+  JSE_PROP(borderWidth);
+  JSE_PROP(colSpan);
+  JSE_PROP(fillColor);
+  JSE_PROP(h);
+  JSE_PROP(hAlign);
+  JSE_PROP(layout);
+  JSE_PROP(mandatory);
+  JSE_PROP(mandatoryMessage);
+  JSE_PROP(maxH);
+  JSE_PROP(maxW);
+  JSE_PROP(minH);
+  JSE_PROP(minW);
+  JSE_PROP(presence);
+  JSE_PROP(rawValue);
+  JSE_PROP(relevant);
+  JSE_PROP(transient);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
+  JSE_PROP(validationMessage);
+  JSE_PROP(vAlign);
+  JSE_PROP(w);
+  JSE_PROP(x);
+  JSE_PROP(y);
 
  private:
   static const CJX_MethodSpec MethodSpecs[];
diff --git a/fxjs/xfa/cjx_exdata.h b/fxjs/xfa/cjx_exdata.h
index e059da8..06a5d21 100644
--- a/fxjs/xfa/cjx_exdata.h
+++ b/fxjs/xfa/cjx_exdata.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_EXDATA_H_
 #define FXJS_XFA_CJX_EXDATA_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_content.h"
 
 class CXFA_ExData;
@@ -16,13 +17,13 @@
   explicit CJX_ExData(CXFA_ExData* node);
   ~CJX_ExData() override;
 
-  JS_PROP(defaultValue); /* {default} */
-  JS_PROP(contentType);
-  JS_PROP(href);
-  JS_PROP(maxLength);
-  JS_PROP(transferEncoding);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(defaultValue); /* {default} */
+  JSE_PROP(contentType);
+  JSE_PROP(href);
+  JSE_PROP(maxLength);
+  JSE_PROP(transferEncoding);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_EXDATA_H_
diff --git a/fxjs/xfa/cjx_execute.h b/fxjs/xfa/cjx_execute.h
index ef7f629..338f8c3 100644
--- a/fxjs/xfa/cjx_execute.h
+++ b/fxjs/xfa/cjx_execute.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_EXECUTE_H_
 #define FXJS_XFA_CJX_EXECUTE_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Execute;
@@ -16,11 +17,11 @@
   explicit CJX_Execute(CXFA_Execute* node);
   ~CJX_Execute() override;
 
-  JS_PROP(connection);
-  JS_PROP(executeType);
-  JS_PROP(runAt);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(connection);
+  JSE_PROP(executeType);
+  JSE_PROP(runAt);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_EXECUTE_H_
diff --git a/fxjs/xfa/cjx_exobject.h b/fxjs/xfa/cjx_exobject.h
index 2fec24a..2e10362 100644
--- a/fxjs/xfa/cjx_exobject.h
+++ b/fxjs/xfa/cjx_exobject.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_EXOBJECT_H_
 #define FXJS_XFA_CJX_EXOBJECT_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_ExObject;
@@ -16,12 +17,12 @@
   explicit CJX_ExObject(CXFA_ExObject* node);
   ~CJX_ExObject() override;
 
-  JS_PROP(archive);
-  JS_PROP(classId);
-  JS_PROP(codeBase);
-  JS_PROP(codeType);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(archive);
+  JSE_PROP(classId);
+  JSE_PROP(codeBase);
+  JSE_PROP(codeType);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_EXOBJECT_H_
diff --git a/fxjs/xfa/cjx_extras.h b/fxjs/xfa/cjx_extras.h
index 9f57903..829aa9d 100644
--- a/fxjs/xfa/cjx_extras.h
+++ b/fxjs/xfa/cjx_extras.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_EXTRAS_H_
 #define FXJS_XFA_CJX_EXTRAS_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Extras;
@@ -16,9 +17,9 @@
   explicit CJX_Extras(CXFA_Extras* node);
   ~CJX_Extras() override;
 
-  JS_PROP(type);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(type);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_EXTRAS_H_
diff --git a/fxjs/xfa/cjx_field.h b/fxjs/xfa/cjx_field.h
index 697aca3..bc8f2cf 100644
--- a/fxjs/xfa/cjx_field.h
+++ b/fxjs/xfa/cjx_field.h
@@ -7,7 +7,7 @@
 #ifndef FXJS_XFA_CJX_FIELD_H_
 #define FXJS_XFA_CJX_FIELD_H_
 
-#include "fxjs/cjx_define.h"
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_container.h"
 
 class CXFA_Field;
@@ -17,53 +17,53 @@
   explicit CJX_Field(CXFA_Field* field);
   ~CJX_Field() override;
 
-  JS_METHOD(addItem, CJX_Field);
-  JS_METHOD(boundItem, CJX_Field);
-  JS_METHOD(clearItems, CJX_Field);
-  JS_METHOD(deleteItem, CJX_Field);
-  JS_METHOD(execCalculate, CJX_Field);
-  JS_METHOD(execEvent, CJX_Field);
-  JS_METHOD(execInitialize, CJX_Field);
-  JS_METHOD(execValidate, CJX_Field);
-  JS_METHOD(getDisplayItem, CJX_Field);
-  JS_METHOD(getItemState, CJX_Field);
-  JS_METHOD(getSaveItem, CJX_Field);
-  JS_METHOD(setItemState, CJX_Field);
+  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);
 
-  JS_PROP(defaultValue); /* {default} */
-  JS_PROP(access);
-  JS_PROP(accessKey);
-  JS_PROP(anchorType);
-  JS_PROP(borderColor);
-  JS_PROP(borderWidth);
-  JS_PROP(colSpan);
-  JS_PROP(editValue);
-  JS_PROP(fillColor);
-  JS_PROP(fontColor);
-  JS_PROP(formatMessage);
-  JS_PROP(formattedValue);
-  JS_PROP(h);
-  JS_PROP(hAlign);
-  JS_PROP(locale);
-  JS_PROP(mandatory);
-  JS_PROP(mandatoryMessage);
-  JS_PROP(maxH);
-  JS_PROP(maxW);
-  JS_PROP(minH);
-  JS_PROP(minW);
-  JS_PROP(parentSubform);
-  JS_PROP(presence);
-  JS_PROP(rawValue);
-  JS_PROP(relevant);
-  JS_PROP(rotate);
-  JS_PROP(selectedIndex);
-  JS_PROP(use);
-  JS_PROP(usehref);
-  JS_PROP(validationMessage);
-  JS_PROP(vAlign);
-  JS_PROP(w);
-  JS_PROP(x);
-  JS_PROP(y);
+  JSE_PROP(defaultValue); /* {default} */
+  JSE_PROP(access);
+  JSE_PROP(accessKey);
+  JSE_PROP(anchorType);
+  JSE_PROP(borderColor);
+  JSE_PROP(borderWidth);
+  JSE_PROP(colSpan);
+  JSE_PROP(editValue);
+  JSE_PROP(fillColor);
+  JSE_PROP(fontColor);
+  JSE_PROP(formatMessage);
+  JSE_PROP(formattedValue);
+  JSE_PROP(h);
+  JSE_PROP(hAlign);
+  JSE_PROP(locale);
+  JSE_PROP(mandatory);
+  JSE_PROP(mandatoryMessage);
+  JSE_PROP(maxH);
+  JSE_PROP(maxW);
+  JSE_PROP(minH);
+  JSE_PROP(minW);
+  JSE_PROP(parentSubform);
+  JSE_PROP(presence);
+  JSE_PROP(rawValue);
+  JSE_PROP(relevant);
+  JSE_PROP(rotate);
+  JSE_PROP(selectedIndex);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
+  JSE_PROP(validationMessage);
+  JSE_PROP(vAlign);
+  JSE_PROP(w);
+  JSE_PROP(x);
+  JSE_PROP(y);
 
  private:
   static const CJX_MethodSpec MethodSpecs[];
diff --git a/fxjs/xfa/cjx_fill.h b/fxjs/xfa/cjx_fill.h
index 869e3cc..064a249 100644
--- a/fxjs/xfa/cjx_fill.h
+++ b/fxjs/xfa/cjx_fill.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_FILL_H_
 #define FXJS_XFA_CJX_FILL_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Fill;
@@ -16,9 +17,9 @@
   explicit CJX_Fill(CXFA_Fill* node);
   ~CJX_Fill() override;
 
-  JS_PROP(presence);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(presence);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_FILL_H_
diff --git a/fxjs/xfa/cjx_filter.h b/fxjs/xfa/cjx_filter.h
index 275d509..6012123 100644
--- a/fxjs/xfa/cjx_filter.h
+++ b/fxjs/xfa/cjx_filter.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_FILTER_H_
 #define FXJS_XFA_CJX_FILTER_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Filter;
@@ -16,9 +17,9 @@
   explicit CJX_Filter(CXFA_Filter* node);
   ~CJX_Filter() override;
 
-  JS_PROP(addRevocationInfo);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(addRevocationInfo);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_FILTER_H_
diff --git a/fxjs/xfa/cjx_float.h b/fxjs/xfa/cjx_float.h
index 1c9489b..2f8c934 100644
--- a/fxjs/xfa/cjx_float.h
+++ b/fxjs/xfa/cjx_float.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_FLOAT_H_
 #define FXJS_XFA_CJX_FLOAT_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_content.h"
 
 class CXFA_Float;
@@ -16,10 +17,10 @@
   explicit CJX_Float(CXFA_Float* node);
   ~CJX_Float() override;
 
-  JS_PROP(defaultValue); /* {default} */
-  JS_PROP(use);
-  JS_PROP(usehref);
-  JS_PROP(value);
+  JSE_PROP(defaultValue); /* {default} */
+  JSE_PROP(use);
+  JSE_PROP(usehref);
+  JSE_PROP(value);
 };
 
 #endif  // FXJS_XFA_CJX_FLOAT_H_
diff --git a/fxjs/xfa/cjx_font.h b/fxjs/xfa/cjx_font.h
index 65b40e4..a5a1356 100644
--- a/fxjs/xfa/cjx_font.h
+++ b/fxjs/xfa/cjx_font.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_FONT_H_
 #define FXJS_XFA_CJX_FONT_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Font;
@@ -16,23 +17,23 @@
   explicit CJX_Font(CXFA_Font* node);
   ~CJX_Font() override;
 
-  JS_PROP(baselineShift);
-  JS_PROP(fontHorizontalScale);
-  JS_PROP(fontVerticalScale);
-  JS_PROP(kerningMode);
-  JS_PROP(letterSpacing);
-  JS_PROP(lineThrough);
-  JS_PROP(lineThroughPeriod);
-  JS_PROP(overline);
-  JS_PROP(overlinePeriod);
-  JS_PROP(posture);
-  JS_PROP(size);
-  JS_PROP(typeface);
-  JS_PROP(underline);
-  JS_PROP(underlinePeriod);
-  JS_PROP(use);
-  JS_PROP(usehref);
-  JS_PROP(weight);
+  JSE_PROP(baselineShift);
+  JSE_PROP(fontHorizontalScale);
+  JSE_PROP(fontVerticalScale);
+  JSE_PROP(kerningMode);
+  JSE_PROP(letterSpacing);
+  JSE_PROP(lineThrough);
+  JSE_PROP(lineThroughPeriod);
+  JSE_PROP(overline);
+  JSE_PROP(overlinePeriod);
+  JSE_PROP(posture);
+  JSE_PROP(size);
+  JSE_PROP(typeface);
+  JSE_PROP(underline);
+  JSE_PROP(underlinePeriod);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
+  JSE_PROP(weight);
 };
 
 #endif  // FXJS_XFA_CJX_FONT_H_
diff --git a/fxjs/xfa/cjx_form.h b/fxjs/xfa/cjx_form.h
index 235dc14..f2325b3 100644
--- a/fxjs/xfa/cjx_form.h
+++ b/fxjs/xfa/cjx_form.h
@@ -7,7 +7,7 @@
 #ifndef FXJS_XFA_CJX_FORM_H_
 #define FXJS_XFA_CJX_FORM_H_
 
-#include "fxjs/cjx_define.h"
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_model.h"
 
 class CXFA_Form;
@@ -17,12 +17,12 @@
   explicit CJX_Form(CXFA_Form* form);
   ~CJX_Form() override;
 
-  JS_METHOD(execCalculate, CJX_Form);
-  JS_METHOD(execInitialize, CJX_Form);
-  JS_METHOD(execValidate, CJX_Form);
-  JS_METHOD(formNodes, CJX_Form);
-  JS_METHOD(recalculate, CJX_Form);
-  JS_METHOD(remerge, CJX_Form);
+  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);
 
  private:
   static const CJX_MethodSpec MethodSpecs[];
diff --git a/fxjs/xfa/cjx_format.h b/fxjs/xfa/cjx_format.h
index 5e8c971..3f4a42b 100644
--- a/fxjs/xfa/cjx_format.h
+++ b/fxjs/xfa/cjx_format.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_FORMAT_H_
 #define FXJS_XFA_CJX_FORMAT_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Format;
@@ -16,8 +17,8 @@
   explicit CJX_Format(CXFA_Format* node);
   ~CJX_Format() override;
 
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_FORMAT_H_
diff --git a/fxjs/xfa/cjx_handler.h b/fxjs/xfa/cjx_handler.h
index 373328b..feb0e6d 100644
--- a/fxjs/xfa/cjx_handler.h
+++ b/fxjs/xfa/cjx_handler.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_HANDLER_H_
 #define FXJS_XFA_CJX_HANDLER_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_textnode.h"
 
 class CXFA_Handler;
@@ -16,10 +17,10 @@
   explicit CJX_Handler(CXFA_Handler* node);
   ~CJX_Handler() override;
 
-  JS_PROP(type);
-  JS_PROP(use);
-  JS_PROP(version);
-  JS_PROP(usehref);
+  JSE_PROP(type);
+  JSE_PROP(use);
+  JSE_PROP(version);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_HANDLER_H_
diff --git a/fxjs/xfa/cjx_hostpseudomodel.h b/fxjs/xfa/cjx_hostpseudomodel.h
index 7b9279a..7ef7d03 100644
--- a/fxjs/xfa/cjx_hostpseudomodel.h
+++ b/fxjs/xfa/cjx_hostpseudomodel.h
@@ -7,7 +7,7 @@
 #ifndef FXJS_XFA_CJX_HOSTPSEUDOMODEL_H_
 #define FXJS_XFA_CJX_HOSTPSEUDOMODEL_H_
 
-#include "fxjs/cjx_define.h"
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_object.h"
 #include "xfa/fxfa/fxfa_basic.h"
 
@@ -19,36 +19,36 @@
   explicit CJX_HostPseudoModel(CScript_HostPseudoModel* model);
   ~CJX_HostPseudoModel() override;
 
-  JS_METHOD(beep, CJX_HostPseudoModel);
-  JS_METHOD(documentCountInBatch, CJX_HostPseudoModel);
-  JS_METHOD(documentInBatch, CJX_HostPseudoModel);
-  JS_METHOD(exportData, CJX_HostPseudoModel);
-  JS_METHOD(getFocus, CJX_HostPseudoModel);
-  JS_METHOD(gotoURL, CJX_HostPseudoModel);
-  JS_METHOD(importData, CJX_HostPseudoModel);
-  JS_METHOD(messageBox, CJX_HostPseudoModel);
-  JS_METHOD(openList, CJX_HostPseudoModel);
-  JS_METHOD(pageDown, CJX_HostPseudoModel);
-  JS_METHOD(pageUp, CJX_HostPseudoModel);
-  JS_METHOD(print, CJX_HostPseudoModel);
-  JS_METHOD(resetData, CJX_HostPseudoModel);
-  JS_METHOD(response, CJX_HostPseudoModel);
-  JS_METHOD(setFocus, CJX_HostPseudoModel);
+  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);
 
-  JS_PROP(appType);
-  JS_PROP(calculationsEnabled);
-  JS_PROP(currentPage);
-  JS_PROP(language);
-  JS_PROP(numPages);
-  JS_PROP(platform);
-  JS_PROP(title);
-  JS_PROP(validationsEnabled);
-  JS_PROP(variation);
-  JS_PROP(version);
+  JSE_PROP(appType);
+  JSE_PROP(calculationsEnabled);
+  JSE_PROP(currentPage);
+  JSE_PROP(language);
+  JSE_PROP(numPages);
+  JSE_PROP(platform);
+  JSE_PROP(title);
+  JSE_PROP(validationsEnabled);
+  JSE_PROP(variation);
+  JSE_PROP(version);
 
   // TODO(dsinclair): Remove when xfa_basic_data_element_script is removed.
   // Doesn't exist in spec
-  JS_PROP(name);
+  JSE_PROP(name);
 
  private:
   static const CJX_MethodSpec MethodSpecs[];
diff --git a/fxjs/xfa/cjx_image.h b/fxjs/xfa/cjx_image.h
index 5cd120a..682ea31 100644
--- a/fxjs/xfa/cjx_image.h
+++ b/fxjs/xfa/cjx_image.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_IMAGE_H_
 #define FXJS_XFA_CJX_IMAGE_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Image;
@@ -16,14 +17,14 @@
   explicit CJX_Image(CXFA_Image* node);
   ~CJX_Image() override;
 
-  JS_PROP(defaultValue); /* {default} */
-  JS_PROP(aspect);
-  JS_PROP(contentType);
-  JS_PROP(href);
-  JS_PROP(transferEncoding);
-  JS_PROP(use);
-  JS_PROP(usehref);
-  JS_PROP(value);
+  JSE_PROP(defaultValue); /* {default} */
+  JSE_PROP(aspect);
+  JSE_PROP(contentType);
+  JSE_PROP(href);
+  JSE_PROP(transferEncoding);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
+  JSE_PROP(value);
 };
 
 #endif  // FXJS_XFA_CJX_IMAGE_H_
diff --git a/fxjs/xfa/cjx_imageedit.h b/fxjs/xfa/cjx_imageedit.h
index ebf4fa3..6b7f1d3 100644
--- a/fxjs/xfa/cjx_imageedit.h
+++ b/fxjs/xfa/cjx_imageedit.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_IMAGEEDIT_H_
 #define FXJS_XFA_CJX_IMAGEEDIT_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_ImageEdit;
@@ -16,9 +17,9 @@
   explicit CJX_ImageEdit(CXFA_ImageEdit* node);
   ~CJX_ImageEdit() override;
 
-  JS_PROP(data);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(data);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_IMAGEEDIT_H_
diff --git a/fxjs/xfa/cjx_insert.h b/fxjs/xfa/cjx_insert.h
index 3b73df8..888a246 100644
--- a/fxjs/xfa/cjx_insert.h
+++ b/fxjs/xfa/cjx_insert.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_INSERT_H_
 #define FXJS_XFA_CJX_INSERT_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_textnode.h"
 
 class CXFA_Insert;
@@ -16,8 +17,8 @@
   explicit CJX_Insert(CXFA_Insert* node);
   ~CJX_Insert() override;
 
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_INSERT_H_
diff --git a/fxjs/xfa/cjx_instancemanager.h b/fxjs/xfa/cjx_instancemanager.h
index c869ec3..b151d71 100644
--- a/fxjs/xfa/cjx_instancemanager.h
+++ b/fxjs/xfa/cjx_instancemanager.h
@@ -7,7 +7,7 @@
 #ifndef FXJS_XFA_CJX_INSTANCEMANAGER_H_
 #define FXJS_XFA_CJX_INSTANCEMANAGER_H_
 
-#include "fxjs/cjx_define.h"
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_InstanceManager;
@@ -17,15 +17,15 @@
   explicit CJX_InstanceManager(CXFA_InstanceManager* mgr);
   ~CJX_InstanceManager() override;
 
-  JS_METHOD(addInstance, CJX_InstanceManager);
-  JS_METHOD(insertInstance, CJX_InstanceManager);
-  JS_METHOD(moveInstance, CJX_InstanceManager);
-  JS_METHOD(removeInstance, CJX_InstanceManager);
-  JS_METHOD(setInstances, CJX_InstanceManager);
+  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);
 
-  JS_PROP(count);
-  JS_PROP(max);
-  JS_PROP(min);
+  JSE_PROP(count);
+  JSE_PROP(max);
+  JSE_PROP(min);
 
   int32_t MoveInstance(int32_t iTo, int32_t iFrom);
 
diff --git a/fxjs/xfa/cjx_integer.h b/fxjs/xfa/cjx_integer.h
index 90daabf..426235b 100644
--- a/fxjs/xfa/cjx_integer.h
+++ b/fxjs/xfa/cjx_integer.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_INTEGER_H_
 #define FXJS_XFA_CJX_INTEGER_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_content.h"
 
 class CXFA_Integer;
@@ -16,10 +17,10 @@
   explicit CJX_Integer(CXFA_Integer* node);
   ~CJX_Integer() override;
 
-  JS_PROP(defaultValue); /* {default} */
-  JS_PROP(use);
-  JS_PROP(usehref);
-  JS_PROP(value);
+  JSE_PROP(defaultValue); /* {default} */
+  JSE_PROP(use);
+  JSE_PROP(usehref);
+  JSE_PROP(value);
 };
 
 #endif  // FXJS_XFA_CJX_INTEGER_H_
diff --git a/fxjs/xfa/cjx_issuers.h b/fxjs/xfa/cjx_issuers.h
index 5d76e72..bdd777a 100644
--- a/fxjs/xfa/cjx_issuers.h
+++ b/fxjs/xfa/cjx_issuers.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_ISSUERS_H_
 #define FXJS_XFA_CJX_ISSUERS_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Issuers;
@@ -16,9 +17,9 @@
   explicit CJX_Issuers(CXFA_Issuers* node);
   ~CJX_Issuers() override;
 
-  JS_PROP(type);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(type);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_ISSUERS_H_
diff --git a/fxjs/xfa/cjx_items.h b/fxjs/xfa/cjx_items.h
index 94f2b43..039757f 100644
--- a/fxjs/xfa/cjx_items.h
+++ b/fxjs/xfa/cjx_items.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_ITEMS_H_
 #define FXJS_XFA_CJX_ITEMS_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Items;
@@ -16,11 +17,11 @@
   explicit CJX_Items(CXFA_Items* node);
   ~CJX_Items() override;
 
-  JS_PROP(presence);
-  JS_PROP(ref);
-  JS_PROP(save);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(presence);
+  JSE_PROP(ref);
+  JSE_PROP(save);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_ITEMS_H_
diff --git a/fxjs/xfa/cjx_keep.h b/fxjs/xfa/cjx_keep.h
index fa8a111..3e1166f 100644
--- a/fxjs/xfa/cjx_keep.h
+++ b/fxjs/xfa/cjx_keep.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_KEEP_H_
 #define FXJS_XFA_CJX_KEEP_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Keep;
@@ -16,11 +17,11 @@
   explicit CJX_Keep(CXFA_Keep* node);
   ~CJX_Keep() override;
 
-  JS_PROP(intact);
-  JS_PROP(next);
-  JS_PROP(previous);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(intact);
+  JSE_PROP(next);
+  JSE_PROP(previous);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_KEEP_H_
diff --git a/fxjs/xfa/cjx_keyusage.h b/fxjs/xfa/cjx_keyusage.h
index 3ff546d..54ec8df 100644
--- a/fxjs/xfa/cjx_keyusage.h
+++ b/fxjs/xfa/cjx_keyusage.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_KEYUSAGE_H_
 #define FXJS_XFA_CJX_KEYUSAGE_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_KeyUsage;
@@ -16,18 +17,18 @@
   explicit CJX_KeyUsage(CXFA_KeyUsage* node);
   ~CJX_KeyUsage() override;
 
-  JS_PROP(crlSign);
-  JS_PROP(dataEncipherment);
-  JS_PROP(decipherOnly);
-  JS_PROP(digitalSignature);
-  JS_PROP(encipherOnly);
-  JS_PROP(keyAgreement);
-  JS_PROP(keyCertSign);
-  JS_PROP(keyEncipherment);
-  JS_PROP(nonRepudiation);
-  JS_PROP(type);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(crlSign);
+  JSE_PROP(dataEncipherment);
+  JSE_PROP(decipherOnly);
+  JSE_PROP(digitalSignature);
+  JSE_PROP(encipherOnly);
+  JSE_PROP(keyAgreement);
+  JSE_PROP(keyCertSign);
+  JSE_PROP(keyEncipherment);
+  JSE_PROP(nonRepudiation);
+  JSE_PROP(type);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_KEYUSAGE_H_
diff --git a/fxjs/xfa/cjx_layoutpseudomodel.h b/fxjs/xfa/cjx_layoutpseudomodel.h
index b57c80c..3d14b85 100644
--- a/fxjs/xfa/cjx_layoutpseudomodel.h
+++ b/fxjs/xfa/cjx_layoutpseudomodel.h
@@ -9,7 +9,7 @@
 
 #include <vector>
 
-#include "fxjs/cjx_define.h"
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_object.h"
 
 enum XFA_LAYOUTMODEL_HWXY {
@@ -29,27 +29,27 @@
   explicit CJX_LayoutPseudoModel(CScript_LayoutPseudoModel* model);
   ~CJX_LayoutPseudoModel() override;
 
-  JS_METHOD(absPage, CJX_LayoutPseudoModel);
-  JS_METHOD(absPageCount, CJX_LayoutPseudoModel);
-  JS_METHOD(absPageCountInBatch, CJX_LayoutPseudoModel);
-  JS_METHOD(absPageInBatch, CJX_LayoutPseudoModel);
-  JS_METHOD(absPageSpan, CJX_LayoutPseudoModel);
-  JS_METHOD(h, CJX_LayoutPseudoModel);
-  JS_METHOD(page, CJX_LayoutPseudoModel);
-  JS_METHOD(pageContent, CJX_LayoutPseudoModel);
-  JS_METHOD(pageCount, CJX_LayoutPseudoModel);
-  JS_METHOD(pageSpan, CJX_LayoutPseudoModel);
-  JS_METHOD(relayout, CJX_LayoutPseudoModel);
-  JS_METHOD(relayoutPageArea, CJX_LayoutPseudoModel);
-  JS_METHOD(sheet, CJX_LayoutPseudoModel);
-  JS_METHOD(sheetCount, CJX_LayoutPseudoModel);
-  JS_METHOD(sheetCountInBatch, CJX_LayoutPseudoModel);
-  JS_METHOD(sheetInBatch, CJX_LayoutPseudoModel);
-  JS_METHOD(w, CJX_LayoutPseudoModel);
-  JS_METHOD(x, CJX_LayoutPseudoModel);
-  JS_METHOD(y, CJX_LayoutPseudoModel);
+  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);
 
-  JS_PROP(ready);
+  JSE_PROP(ready);
 
  private:
   CJS_Return NumberedPageCount(CFX_V8* runtime, bool bNumbered);
diff --git a/fxjs/xfa/cjx_line.h b/fxjs/xfa/cjx_line.h
index 7041c12..48e8a4e 100644
--- a/fxjs/xfa/cjx_line.h
+++ b/fxjs/xfa/cjx_line.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_LINE_H_
 #define FXJS_XFA_CJX_LINE_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Line;
@@ -16,10 +17,10 @@
   explicit CJX_Line(CXFA_Line* node);
   ~CJX_Line() override;
 
-  JS_PROP(hand);
-  JS_PROP(slope);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(hand);
+  JSE_PROP(slope);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_LINE_H_
diff --git a/fxjs/xfa/cjx_linear.h b/fxjs/xfa/cjx_linear.h
index 30a54bf..b1d3a88 100644
--- a/fxjs/xfa/cjx_linear.h
+++ b/fxjs/xfa/cjx_linear.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_LINEAR_H_
 #define FXJS_XFA_CJX_LINEAR_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Linear;
@@ -16,9 +17,9 @@
   explicit CJX_Linear(CXFA_Linear* node);
   ~CJX_Linear() override;
 
-  JS_PROP(type);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(type);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_LINEAR_H_
diff --git a/fxjs/xfa/cjx_list.h b/fxjs/xfa/cjx_list.h
index 90ecf69..99661a4 100644
--- a/fxjs/xfa/cjx_list.h
+++ b/fxjs/xfa/cjx_list.h
@@ -7,7 +7,7 @@
 #ifndef FXJS_XFA_CJX_LIST_H_
 #define FXJS_XFA_CJX_LIST_H_
 
-#include "fxjs/cjx_define.h"
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_object.h"
 
 class CXFA_List;
@@ -17,12 +17,12 @@
   explicit CJX_List(CXFA_List* list);
   ~CJX_List() override;
 
-  JS_METHOD(append, CJX_List);
-  JS_METHOD(insert, CJX_List);
-  JS_METHOD(item, CJX_List);
-  JS_METHOD(remove, CJX_List);
+  JSE_METHOD(append, CJX_List);
+  JSE_METHOD(insert, CJX_List);
+  JSE_METHOD(item, CJX_List);
+  JSE_METHOD(remove, CJX_List);
 
-  JS_PROP(length);
+  JSE_PROP(length);
 
  private:
   CXFA_List* GetXFAList();
diff --git a/fxjs/xfa/cjx_logpseudomodel.h b/fxjs/xfa/cjx_logpseudomodel.h
index a6ef871..3994411 100644
--- a/fxjs/xfa/cjx_logpseudomodel.h
+++ b/fxjs/xfa/cjx_logpseudomodel.h
@@ -7,7 +7,7 @@
 #ifndef FXJS_XFA_CJX_LOGPSEUDOMODEL_H_
 #define FXJS_XFA_CJX_LOGPSEUDOMODEL_H_
 
-#include "fxjs/cjx_define.h"
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_object.h"
 
 class CScript_LogPseudoModel;
@@ -19,11 +19,11 @@
   explicit CJX_LogPseudoModel(CScript_LogPseudoModel* model);
   ~CJX_LogPseudoModel() override;
 
-  JS_METHOD(message, CJX_LogPseudoModel);
-  JS_METHOD(traceEnabled, CJX_LogPseudoModel);
-  JS_METHOD(traceActivate, CJX_LogPseudoModel);
-  JS_METHOD(traceDeactivate, CJX_LogPseudoModel);
-  JS_METHOD(trace, CJX_LogPseudoModel);
+  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);
 
  private:
   static const CJX_MethodSpec MethodSpecs[];
diff --git a/fxjs/xfa/cjx_manifest.h b/fxjs/xfa/cjx_manifest.h
index 78aa5bc..fa16b47 100644
--- a/fxjs/xfa/cjx_manifest.h
+++ b/fxjs/xfa/cjx_manifest.h
@@ -7,7 +7,7 @@
 #ifndef FXJS_XFA_CJX_MANIFEST_H_
 #define FXJS_XFA_CJX_MANIFEST_H_
 
-#include "fxjs/cjx_define.h"
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Manifest;
@@ -17,12 +17,12 @@
   explicit CJX_Manifest(CXFA_Manifest* manifest);
   ~CJX_Manifest() override;
 
-  JS_METHOD(evaluate, CJX_Manifest);
+  JSE_METHOD(evaluate, CJX_Manifest);
 
-  JS_PROP(defaultValue); /* {default} */
-  JS_PROP(action);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(defaultValue); /* {default} */
+  JSE_PROP(action);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 
  private:
   static const CJX_MethodSpec MethodSpecs[];
diff --git a/fxjs/xfa/cjx_map.h b/fxjs/xfa/cjx_map.h
index dba7eb6..7a0eb37 100644
--- a/fxjs/xfa/cjx_map.h
+++ b/fxjs/xfa/cjx_map.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_MAP_H_
 #define FXJS_XFA_CJX_MAP_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Map;
@@ -16,10 +17,10 @@
   explicit CJX_Map(CXFA_Map* node);
   ~CJX_Map() override;
 
-  JS_PROP(bind);
-  JS_PROP(from);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(bind);
+  JSE_PROP(from);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_MAP_H_
diff --git a/fxjs/xfa/cjx_margin.h b/fxjs/xfa/cjx_margin.h
index 0ca884f..be0e220 100644
--- a/fxjs/xfa/cjx_margin.h
+++ b/fxjs/xfa/cjx_margin.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_MARGIN_H_
 #define FXJS_XFA_CJX_MARGIN_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Margin;
@@ -16,12 +17,12 @@
   explicit CJX_Margin(CXFA_Margin* node);
   ~CJX_Margin() override;
 
-  JS_PROP(bottomInset);
-  JS_PROP(leftInset);
-  JS_PROP(rightInset);
-  JS_PROP(topInset);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(bottomInset);
+  JSE_PROP(leftInset);
+  JSE_PROP(rightInset);
+  JSE_PROP(topInset);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_MARGIN_H_
diff --git a/fxjs/xfa/cjx_mdp.h b/fxjs/xfa/cjx_mdp.h
index bdce2b8..a58dc82 100644
--- a/fxjs/xfa/cjx_mdp.h
+++ b/fxjs/xfa/cjx_mdp.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_MDP_H_
 #define FXJS_XFA_CJX_MDP_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Mdp;
@@ -16,10 +17,10 @@
   explicit CJX_Mdp(CXFA_Mdp* node);
   ~CJX_Mdp() override;
 
-  JS_PROP(permissions);
-  JS_PROP(signatureType);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(permissions);
+  JSE_PROP(signatureType);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_MDP_H_
diff --git a/fxjs/xfa/cjx_medium.h b/fxjs/xfa/cjx_medium.h
index 99023dc..88daa1b 100644
--- a/fxjs/xfa/cjx_medium.h
+++ b/fxjs/xfa/cjx_medium.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_MEDIUM_H_
 #define FXJS_XFA_CJX_MEDIUM_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Medium;
@@ -16,13 +17,13 @@
   explicit CJX_Medium(CXFA_Medium* node);
   ~CJX_Medium() override;
 
-  JS_PROP(imagingBBox);
-  JS_PROP(longValue); /* long */
-  JS_PROP(orientation);
-  JS_PROP(shortValue); /* short */
-  JS_PROP(stock);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(imagingBBox);
+  JSE_PROP(longValue); /* long */
+  JSE_PROP(orientation);
+  JSE_PROP(shortValue); /* short */
+  JSE_PROP(stock);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_MEDIUM_H_
diff --git a/fxjs/xfa/cjx_message.h b/fxjs/xfa/cjx_message.h
index a2a461e..989a2de 100644
--- a/fxjs/xfa/cjx_message.h
+++ b/fxjs/xfa/cjx_message.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_MESSAGE_H_
 #define FXJS_XFA_CJX_MESSAGE_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Message;
@@ -16,8 +17,8 @@
   explicit CJX_Message(CXFA_Message* node);
   ~CJX_Message() override;
 
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_MESSAGE_H_
diff --git a/fxjs/xfa/cjx_model.h b/fxjs/xfa/cjx_model.h
index 6071235..e517c74 100644
--- a/fxjs/xfa/cjx_model.h
+++ b/fxjs/xfa/cjx_model.h
@@ -7,7 +7,7 @@
 #ifndef FXJS_XFA_CJX_MODEL_H_
 #define FXJS_XFA_CJX_MODEL_H_
 
-#include "fxjs/cjx_define.h"
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Node;
@@ -17,12 +17,12 @@
   explicit CJX_Model(CXFA_Node* obj);
   ~CJX_Model() override;
 
-  JS_METHOD(clearErrorList, CJX_Model);
-  JS_METHOD(createNode, CJX_Model);
-  JS_METHOD(isCompatibleNS, CJX_Model);
+  JSE_METHOD(clearErrorList, CJX_Model);
+  JSE_METHOD(createNode, CJX_Model);
+  JSE_METHOD(isCompatibleNS, CJX_Model);
 
-  JS_PROP(aliasNode);
-  JS_PROP(context);
+  JSE_PROP(aliasNode);
+  JSE_PROP(context);
 
  private:
   static const CJX_MethodSpec MethodSpecs[];
diff --git a/fxjs/xfa/cjx_node.h b/fxjs/xfa/cjx_node.h
index 224f44c..8d26642 100644
--- a/fxjs/xfa/cjx_node.h
+++ b/fxjs/xfa/cjx_node.h
@@ -7,7 +7,7 @@
 #ifndef FXJS_XFA_CJX_NODE_H_
 #define FXJS_XFA_CJX_NODE_H_
 
-#include "fxjs/cjx_define.h"
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_object.h"
 #include "fxjs/xfa/cjx_tree.h"
 #include "xfa/fxfa/fxfa_basic.h"
@@ -19,24 +19,24 @@
   explicit CJX_Node(CXFA_Node* node);
   ~CJX_Node() override;
 
-  JS_METHOD(applyXSL, CJX_Node);
-  JS_METHOD(assignNode, CJX_Node);
-  JS_METHOD(clone, CJX_Node);
-  JS_METHOD(getAttribute, CJX_Node);
-  JS_METHOD(getElement, CJX_Node);
-  JS_METHOD(isPropertySpecified, CJX_Node);
-  JS_METHOD(loadXML, CJX_Node);
-  JS_METHOD(saveFilteredXML, CJX_Node);
-  JS_METHOD(saveXML, CJX_Node);
-  JS_METHOD(setAttribute, CJX_Node);
-  JS_METHOD(setElement, CJX_Node);
+  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);
 
-  JS_PROP(id);
-  JS_PROP(isContainer);
-  JS_PROP(isNull);
-  JS_PROP(model);
-  JS_PROP(ns);
-  JS_PROP(oneOfChild);
+  JSE_PROP(id);
+  JSE_PROP(isContainer);
+  JSE_PROP(isNull);
+  JSE_PROP(model);
+  JSE_PROP(ns);
+  JSE_PROP(oneOfChild);
 
   CXFA_Node* GetXFANode();
   const CXFA_Node* GetXFANode() const;
diff --git a/fxjs/xfa/cjx_numericedit.h b/fxjs/xfa/cjx_numericedit.h
index 43f9d00..b83ccea 100644
--- a/fxjs/xfa/cjx_numericedit.h
+++ b/fxjs/xfa/cjx_numericedit.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_NUMERICEDIT_H_
 #define FXJS_XFA_CJX_NUMERICEDIT_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_NumericEdit;
@@ -16,9 +17,9 @@
   explicit CJX_NumericEdit(CXFA_NumericEdit* node);
   ~CJX_NumericEdit() override;
 
-  JS_PROP(hScrollPolicy);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(hScrollPolicy);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_NUMERICEDIT_H_
diff --git a/fxjs/xfa/cjx_object.h b/fxjs/xfa/cjx_object.h
index 0ee2b66..5b57cbe 100644
--- a/fxjs/xfa/cjx_object.h
+++ b/fxjs/xfa/cjx_object.h
@@ -15,7 +15,7 @@
 #include "core/fxcrt/unowned_ptr.h"
 #include "core/fxcrt/widestring.h"
 #include "core/fxcrt/xml/cfx_xmlelement.h"
-#include "fxjs/cjx_define.h"
+#include "fxjs/jse_define.h"
 #include "third_party/base/optional.h"
 #include "third_party/base/span.h"
 #include "xfa/fxfa/fxfa_basic.h"
@@ -58,7 +58,7 @@
   explicit CJX_Object(CXFA_Object* obj);
   virtual ~CJX_Object();
 
-  JS_PROP(className);
+  JSE_PROP(className);
 
   CXFA_Document* GetDocument() const;
   CXFA_Object* GetXFAObject() const { return object_.Get(); }
diff --git a/fxjs/xfa/cjx_occur.h b/fxjs/xfa/cjx_occur.h
index fe17423..b67007c 100644
--- a/fxjs/xfa/cjx_occur.h
+++ b/fxjs/xfa/cjx_occur.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_OCCUR_H_
 #define FXJS_XFA_CJX_OCCUR_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Occur;
@@ -16,11 +17,11 @@
   explicit CJX_Occur(CXFA_Occur* node);
   ~CJX_Occur() override;
 
-  JS_PROP(initial);
-  JS_PROP(max);
-  JS_PROP(min);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(initial);
+  JSE_PROP(max);
+  JSE_PROP(min);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_OCCUR_H_
diff --git a/fxjs/xfa/cjx_oid.h b/fxjs/xfa/cjx_oid.h
index 2578388..8380d27 100644
--- a/fxjs/xfa/cjx_oid.h
+++ b/fxjs/xfa/cjx_oid.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_OID_H_
 #define FXJS_XFA_CJX_OID_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_textnode.h"
 
 class CXFA_Oid;
@@ -16,8 +17,8 @@
   explicit CJX_Oid(CXFA_Oid* node);
   ~CJX_Oid() override;
 
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_OID_H_
diff --git a/fxjs/xfa/cjx_oids.h b/fxjs/xfa/cjx_oids.h
index 9951206..64d751b 100644
--- a/fxjs/xfa/cjx_oids.h
+++ b/fxjs/xfa/cjx_oids.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_OIDS_H_
 #define FXJS_XFA_CJX_OIDS_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Oids;
@@ -16,9 +17,9 @@
   explicit CJX_Oids(CXFA_Oids* node);
   ~CJX_Oids() override;
 
-  JS_PROP(type);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(type);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_OIDS_H_
diff --git a/fxjs/xfa/cjx_operation.h b/fxjs/xfa/cjx_operation.h
index b32ea62..36411f6 100644
--- a/fxjs/xfa/cjx_operation.h
+++ b/fxjs/xfa/cjx_operation.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_OPERATION_H_
 #define FXJS_XFA_CJX_OPERATION_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_textnode.h"
 
 class CXFA_Operation;
@@ -16,10 +17,10 @@
   explicit CJX_Operation(CXFA_Operation* node);
   ~CJX_Operation() override;
 
-  JS_PROP(input);
-  JS_PROP(output);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(input);
+  JSE_PROP(output);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_OPERATION_H_
diff --git a/fxjs/xfa/cjx_overflow.h b/fxjs/xfa/cjx_overflow.h
index c4f94b8..e0859ae 100644
--- a/fxjs/xfa/cjx_overflow.h
+++ b/fxjs/xfa/cjx_overflow.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_OVERFLOW_H_
 #define FXJS_XFA_CJX_OVERFLOW_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Overflow;
@@ -16,11 +17,11 @@
   explicit CJX_Overflow(CXFA_Overflow* node);
   ~CJX_Overflow() override;
 
-  JS_PROP(leader);
-  JS_PROP(target);
-  JS_PROP(trailer);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(leader);
+  JSE_PROP(target);
+  JSE_PROP(trailer);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_OVERFLOW_H_
diff --git a/fxjs/xfa/cjx_packet.h b/fxjs/xfa/cjx_packet.h
index 573ea3a..7950678 100644
--- a/fxjs/xfa/cjx_packet.h
+++ b/fxjs/xfa/cjx_packet.h
@@ -7,7 +7,7 @@
 #ifndef FXJS_XFA_CJX_PACKET_H_
 #define FXJS_XFA_CJX_PACKET_H_
 
-#include "fxjs/cjx_define.h"
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Packet;
@@ -17,11 +17,11 @@
   explicit CJX_Packet(CXFA_Packet* packet);
   ~CJX_Packet() override;
 
-  JS_METHOD(getAttribute, CJX_Packet);
-  JS_METHOD(removeAttribute, CJX_Packet);
-  JS_METHOD(setAttribute, CJX_Packet);
+  JSE_METHOD(getAttribute, CJX_Packet);
+  JSE_METHOD(removeAttribute, CJX_Packet);
+  JSE_METHOD(setAttribute, CJX_Packet);
 
-  JS_PROP(content);
+  JSE_PROP(content);
 
  private:
   static const CJX_MethodSpec MethodSpecs[];
diff --git a/fxjs/xfa/cjx_pagearea.h b/fxjs/xfa/cjx_pagearea.h
index 8935fa6..df3db36 100644
--- a/fxjs/xfa/cjx_pagearea.h
+++ b/fxjs/xfa/cjx_pagearea.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_PAGEAREA_H_
 #define FXJS_XFA_CJX_PAGEAREA_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_container.h"
 
 class CXFA_PageArea;
@@ -16,14 +17,14 @@
   explicit CJX_PageArea(CXFA_PageArea* node);
   ~CJX_PageArea() override;
 
-  JS_PROP(blankOrNotBlank);
-  JS_PROP(initialNumber);
-  JS_PROP(numbered);
-  JS_PROP(oddOrEven);
-  JS_PROP(pagePosition);
-  JS_PROP(relevant);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(blankOrNotBlank);
+  JSE_PROP(initialNumber);
+  JSE_PROP(numbered);
+  JSE_PROP(oddOrEven);
+  JSE_PROP(pagePosition);
+  JSE_PROP(relevant);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_PAGEAREA_H_
diff --git a/fxjs/xfa/cjx_pageset.h b/fxjs/xfa/cjx_pageset.h
index 7e0ab17..d0cd12b 100644
--- a/fxjs/xfa/cjx_pageset.h
+++ b/fxjs/xfa/cjx_pageset.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_PAGESET_H_
 #define FXJS_XFA_CJX_PAGESET_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_container.h"
 
 class CXFA_PageSet;
@@ -16,10 +17,10 @@
   explicit CJX_PageSet(CXFA_PageSet* node);
   ~CJX_PageSet() override;
 
-  JS_PROP(relation);
-  JS_PROP(relevant);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(relation);
+  JSE_PROP(relevant);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_PAGESET_H_
diff --git a/fxjs/xfa/cjx_para.h b/fxjs/xfa/cjx_para.h
index 6bf2841..27e3189 100644
--- a/fxjs/xfa/cjx_para.h
+++ b/fxjs/xfa/cjx_para.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_PARA_H_
 #define FXJS_XFA_CJX_PARA_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Para;
@@ -16,20 +17,20 @@
   explicit CJX_Para(CXFA_Para* node);
   ~CJX_Para() override;
 
-  JS_PROP(hAlign);
-  JS_PROP(lineHeight);
-  JS_PROP(marginLeft);
-  JS_PROP(marginRight);
-  JS_PROP(preserve);
-  JS_PROP(radixOffset);
-  JS_PROP(spaceAbove);
-  JS_PROP(spaceBelow);
-  JS_PROP(tabDefault);
-  JS_PROP(tabStops);
-  JS_PROP(textIndent);
-  JS_PROP(use);
-  JS_PROP(usehref);
-  JS_PROP(vAlign);
+  JSE_PROP(hAlign);
+  JSE_PROP(lineHeight);
+  JSE_PROP(marginLeft);
+  JSE_PROP(marginRight);
+  JSE_PROP(preserve);
+  JSE_PROP(radixOffset);
+  JSE_PROP(spaceAbove);
+  JSE_PROP(spaceBelow);
+  JSE_PROP(tabDefault);
+  JSE_PROP(tabStops);
+  JSE_PROP(textIndent);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
+  JSE_PROP(vAlign);
 };
 
 #endif  // FXJS_XFA_CJX_PARA_H_
diff --git a/fxjs/xfa/cjx_password.h b/fxjs/xfa/cjx_password.h
index ede93cc..bd6b955 100644
--- a/fxjs/xfa/cjx_password.h
+++ b/fxjs/xfa/cjx_password.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_PASSWORD_H_
 #define FXJS_XFA_CJX_PASSWORD_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_textnode.h"
 
 class CXFA_Password;
@@ -16,8 +17,8 @@
   explicit CJX_Password(CXFA_Password* node);
   ~CJX_Password() override;
 
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_PASSWORD_H_
diff --git a/fxjs/xfa/cjx_passwordedit.h b/fxjs/xfa/cjx_passwordedit.h
index e4a5fcb..df6d8eb 100644
--- a/fxjs/xfa/cjx_passwordedit.h
+++ b/fxjs/xfa/cjx_passwordedit.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_PASSWORDEDIT_H_
 #define FXJS_XFA_CJX_PASSWORDEDIT_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_PasswordEdit;
@@ -16,10 +17,10 @@
   explicit CJX_PasswordEdit(CXFA_PasswordEdit* node);
   ~CJX_PasswordEdit() override;
 
-  JS_PROP(hScrollPolicy);
-  JS_PROP(passwordChar);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(hScrollPolicy);
+  JSE_PROP(passwordChar);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_PASSWORDEDIT_H_
diff --git a/fxjs/xfa/cjx_pattern.h b/fxjs/xfa/cjx_pattern.h
index 81754b8..bc3abd0 100644
--- a/fxjs/xfa/cjx_pattern.h
+++ b/fxjs/xfa/cjx_pattern.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_PATTERN_H_
 #define FXJS_XFA_CJX_PATTERN_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Pattern;
@@ -16,9 +17,9 @@
   explicit CJX_Pattern(CXFA_Pattern* node);
   ~CJX_Pattern() override;
 
-  JS_PROP(type);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(type);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_PATTERN_H_
diff --git a/fxjs/xfa/cjx_picture.h b/fxjs/xfa/cjx_picture.h
index 25497c3..a07cee7 100644
--- a/fxjs/xfa/cjx_picture.h
+++ b/fxjs/xfa/cjx_picture.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_PICTURE_H_
 #define FXJS_XFA_CJX_PICTURE_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Picture;
@@ -16,10 +17,10 @@
   explicit CJX_Picture(CXFA_Picture* node);
   ~CJX_Picture() override;
 
-  JS_PROP(defaultValue); /* {default} */
-  JS_PROP(use);
-  JS_PROP(usehref);
-  JS_PROP(value);
+  JSE_PROP(defaultValue); /* {default} */
+  JSE_PROP(use);
+  JSE_PROP(usehref);
+  JSE_PROP(value);
 };
 
 #endif  // FXJS_XFA_CJX_PICTURE_H_
diff --git a/fxjs/xfa/cjx_query.h b/fxjs/xfa/cjx_query.h
index 1057fa2..7ad281a 100644
--- a/fxjs/xfa/cjx_query.h
+++ b/fxjs/xfa/cjx_query.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_QUERY_H_
 #define FXJS_XFA_CJX_QUERY_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Query;
@@ -16,9 +17,9 @@
   explicit CJX_Query(CXFA_Query* node);
   ~CJX_Query() override;
 
-  JS_PROP(commandType);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(commandType);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_QUERY_H_
diff --git a/fxjs/xfa/cjx_radial.h b/fxjs/xfa/cjx_radial.h
index 3073797..0ac8386 100644
--- a/fxjs/xfa/cjx_radial.h
+++ b/fxjs/xfa/cjx_radial.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_RADIAL_H_
 #define FXJS_XFA_CJX_RADIAL_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Radial;
@@ -16,9 +17,9 @@
   explicit CJX_Radial(CXFA_Radial* node);
   ~CJX_Radial() override;
 
-  JS_PROP(type);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(type);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_RADIAL_H_
diff --git a/fxjs/xfa/cjx_reason.h b/fxjs/xfa/cjx_reason.h
index 465cede..bfff550 100644
--- a/fxjs/xfa/cjx_reason.h
+++ b/fxjs/xfa/cjx_reason.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_REASON_H_
 #define FXJS_XFA_CJX_REASON_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_textnode.h"
 
 class CXFA_Reason;
@@ -16,8 +17,8 @@
   explicit CJX_Reason(CXFA_Reason* node);
   ~CJX_Reason() override;
 
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_REASON_H_
diff --git a/fxjs/xfa/cjx_reasons.h b/fxjs/xfa/cjx_reasons.h
index a5da62a..c6a4b35 100644
--- a/fxjs/xfa/cjx_reasons.h
+++ b/fxjs/xfa/cjx_reasons.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_REASONS_H_
 #define FXJS_XFA_CJX_REASONS_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Reasons;
@@ -16,9 +17,9 @@
   explicit CJX_Reasons(CXFA_Reasons* node);
   ~CJX_Reasons() override;
 
-  JS_PROP(type);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(type);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_REASONS_H_
diff --git a/fxjs/xfa/cjx_recordset.h b/fxjs/xfa/cjx_recordset.h
index 7c34f6e..da2319f 100644
--- a/fxjs/xfa/cjx_recordset.h
+++ b/fxjs/xfa/cjx_recordset.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_RECORDSET_H_
 #define FXJS_XFA_CJX_RECORDSET_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_RecordSet;
@@ -16,14 +17,14 @@
   explicit CJX_RecordSet(CXFA_RecordSet* node);
   ~CJX_RecordSet() override;
 
-  JS_PROP(bofAction);
-  JS_PROP(cursorLocation);
-  JS_PROP(cursorType);
-  JS_PROP(eofAction);
-  JS_PROP(lockType);
-  JS_PROP(max);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(bofAction);
+  JSE_PROP(cursorLocation);
+  JSE_PROP(cursorType);
+  JSE_PROP(eofAction);
+  JSE_PROP(lockType);
+  JSE_PROP(max);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_RECORDSET_H_
diff --git a/fxjs/xfa/cjx_rectangle.h b/fxjs/xfa/cjx_rectangle.h
index c08f7a9..e241b98 100644
--- a/fxjs/xfa/cjx_rectangle.h
+++ b/fxjs/xfa/cjx_rectangle.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_RECTANGLE_H_
 #define FXJS_XFA_CJX_RECTANGLE_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Rectangle;
@@ -16,9 +17,9 @@
   explicit CJX_Rectangle(CXFA_Rectangle* node);
   ~CJX_Rectangle() override;
 
-  JS_PROP(hand);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(hand);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_RECTANGLE_H_
diff --git a/fxjs/xfa/cjx_ref.h b/fxjs/xfa/cjx_ref.h
index 4366282..9a36fc3 100644
--- a/fxjs/xfa/cjx_ref.h
+++ b/fxjs/xfa/cjx_ref.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_REF_H_
 #define FXJS_XFA_CJX_REF_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_textnode.h"
 
 class CXFA_Ref;
@@ -16,8 +17,8 @@
   explicit CJX_Ref(CXFA_Ref* node);
   ~CJX_Ref() override;
 
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_REF_H_
diff --git a/fxjs/xfa/cjx_rootelement.h b/fxjs/xfa/cjx_rootelement.h
index 40790df..925f751 100644
--- a/fxjs/xfa/cjx_rootelement.h
+++ b/fxjs/xfa/cjx_rootelement.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_ROOTELEMENT_H_
 #define FXJS_XFA_CJX_ROOTELEMENT_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_textnode.h"
 
 class CXFA_RootElement;
@@ -16,8 +17,8 @@
   explicit CJX_RootElement(CXFA_RootElement* node);
   ~CJX_RootElement() override;
 
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_ROOTELEMENT_H_
diff --git a/fxjs/xfa/cjx_script.h b/fxjs/xfa/cjx_script.h
index ad5f994..fe76df4 100644
--- a/fxjs/xfa/cjx_script.h
+++ b/fxjs/xfa/cjx_script.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_SCRIPT_H_
 #define FXJS_XFA_CJX_SCRIPT_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Script;
@@ -16,14 +17,14 @@
   explicit CJX_Script(CXFA_Script* node);
   ~CJX_Script() override;
 
-  JS_PROP(defaultValue); /* {default} */
-  JS_PROP(binding);
-  JS_PROP(contentType);
-  JS_PROP(runAt);
-  JS_PROP(stateless);
-  JS_PROP(use);
-  JS_PROP(usehref);
-  JS_PROP(value);
+  JSE_PROP(defaultValue); /* {default} */
+  JSE_PROP(binding);
+  JSE_PROP(contentType);
+  JSE_PROP(runAt);
+  JSE_PROP(stateless);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
+  JSE_PROP(value);
 };
 
 #endif  // FXJS_XFA_CJX_SCRIPT_H_
diff --git a/fxjs/xfa/cjx_select.h b/fxjs/xfa/cjx_select.h
index 334c003..d59c1d6 100644
--- a/fxjs/xfa/cjx_select.h
+++ b/fxjs/xfa/cjx_select.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_SELECT_H_
 #define FXJS_XFA_CJX_SELECT_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_textnode.h"
 
 class CXFA_Select;
@@ -16,8 +17,8 @@
   explicit CJX_Select(CXFA_Select* node);
   ~CJX_Select() override;
 
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_SELECT_H_
diff --git a/fxjs/xfa/cjx_setproperty.h b/fxjs/xfa/cjx_setproperty.h
index 9929fef..1d8441f 100644
--- a/fxjs/xfa/cjx_setproperty.h
+++ b/fxjs/xfa/cjx_setproperty.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_SETPROPERTY_H_
 #define FXJS_XFA_CJX_SETPROPERTY_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_SetProperty;
@@ -16,8 +17,8 @@
   explicit CJX_SetProperty(CXFA_SetProperty* node);
   ~CJX_SetProperty() override;
 
-  JS_PROP(connection);
-  JS_PROP(target);
+  JSE_PROP(connection);
+  JSE_PROP(target);
 };
 
 #endif  // FXJS_XFA_CJX_SETPROPERTY_H_
diff --git a/fxjs/xfa/cjx_signature.h b/fxjs/xfa/cjx_signature.h
index bed0b1a..12a1478 100644
--- a/fxjs/xfa/cjx_signature.h
+++ b/fxjs/xfa/cjx_signature.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_SIGNATURE_H_
 #define FXJS_XFA_CJX_SIGNATURE_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Signature;
@@ -16,8 +17,8 @@
   explicit CJX_Signature(CXFA_Signature* node);
   ~CJX_Signature() override;
 
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_SIGNATURE_H_
diff --git a/fxjs/xfa/cjx_signatureproperties.h b/fxjs/xfa/cjx_signatureproperties.h
index ffd47a3..6fd59cf 100644
--- a/fxjs/xfa/cjx_signatureproperties.h
+++ b/fxjs/xfa/cjx_signatureproperties.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_SIGNATUREPROPERTIES_H_
 #define FXJS_XFA_CJX_SIGNATUREPROPERTIES_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_SignatureProperties;
@@ -17,8 +18,8 @@
   explicit CJX_SignatureProperties(CXFA_SignatureProperties* node);
   ~CJX_SignatureProperties() override;
 
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_SIGNATUREPROPERTIES_H_
diff --git a/fxjs/xfa/cjx_signaturepseudomodel.h b/fxjs/xfa/cjx_signaturepseudomodel.h
index 0aecfa5..0184cba 100644
--- a/fxjs/xfa/cjx_signaturepseudomodel.h
+++ b/fxjs/xfa/cjx_signaturepseudomodel.h
@@ -7,7 +7,7 @@
 #ifndef FXJS_XFA_CJX_SIGNATUREPSEUDOMODEL_H_
 #define FXJS_XFA_CJX_SIGNATUREPSEUDOMODEL_H_
 
-#include "fxjs/cjx_define.h"
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_object.h"
 
 class CScript_SignaturePseudoModel;
@@ -17,10 +17,10 @@
   explicit CJX_SignaturePseudoModel(CScript_SignaturePseudoModel* model);
   ~CJX_SignaturePseudoModel() override;
 
-  JS_METHOD(verifySignature /*verify*/, CJX_SignaturePseudoModel);
-  JS_METHOD(sign, CJX_SignaturePseudoModel);
-  JS_METHOD(enumerate, CJX_SignaturePseudoModel);
-  JS_METHOD(clear, CJX_SignaturePseudoModel);
+  JSE_METHOD(verifySignature /*verify*/, CJX_SignaturePseudoModel);
+  JSE_METHOD(sign, CJX_SignaturePseudoModel);
+  JSE_METHOD(enumerate, CJX_SignaturePseudoModel);
+  JSE_METHOD(clear, CJX_SignaturePseudoModel);
 
  private:
   static const CJX_MethodSpec MethodSpecs[];
diff --git a/fxjs/xfa/cjx_signdata.h b/fxjs/xfa/cjx_signdata.h
index 7d9b175..8b68877 100644
--- a/fxjs/xfa/cjx_signdata.h
+++ b/fxjs/xfa/cjx_signdata.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_SIGNDATA_H_
 #define FXJS_XFA_CJX_SIGNDATA_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_SignData;
@@ -16,11 +17,11 @@
   explicit CJX_SignData(CXFA_SignData* node);
   ~CJX_SignData() override;
 
-  JS_PROP(operation);
-  JS_PROP(ref);
-  JS_PROP(target);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(operation);
+  JSE_PROP(ref);
+  JSE_PROP(target);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_SIGNDATA_H_
diff --git a/fxjs/xfa/cjx_signing.h b/fxjs/xfa/cjx_signing.h
index 8b35509..428e92b 100644
--- a/fxjs/xfa/cjx_signing.h
+++ b/fxjs/xfa/cjx_signing.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_SIGNING_H_
 #define FXJS_XFA_CJX_SIGNING_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Signing;
@@ -16,9 +17,9 @@
   explicit CJX_Signing(CXFA_Signing* node);
   ~CJX_Signing() override;
 
-  JS_PROP(type);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(type);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_SIGNING_H_
diff --git a/fxjs/xfa/cjx_soapaction.h b/fxjs/xfa/cjx_soapaction.h
index efc90e4..3da3825 100644
--- a/fxjs/xfa/cjx_soapaction.h
+++ b/fxjs/xfa/cjx_soapaction.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_SOAPACTION_H_
 #define FXJS_XFA_CJX_SOAPACTION_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_textnode.h"
 
 class CXFA_SoapAction;
@@ -16,8 +17,8 @@
   explicit CJX_SoapAction(CXFA_SoapAction* node);
   ~CJX_SoapAction() override;
 
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_SOAPACTION_H_
diff --git a/fxjs/xfa/cjx_soapaddress.h b/fxjs/xfa/cjx_soapaddress.h
index 3e6e004..14e7abf 100644
--- a/fxjs/xfa/cjx_soapaddress.h
+++ b/fxjs/xfa/cjx_soapaddress.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_SOAPADDRESS_H_
 #define FXJS_XFA_CJX_SOAPADDRESS_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_textnode.h"
 
 class CXFA_SoapAddress;
@@ -16,8 +17,8 @@
   explicit CJX_SoapAddress(CXFA_SoapAddress* node);
   ~CJX_SoapAddress() override;
 
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_SOAPADDRESS_H_
diff --git a/fxjs/xfa/cjx_solid.h b/fxjs/xfa/cjx_solid.h
index 3b8dd5e..a6ecc7b 100644
--- a/fxjs/xfa/cjx_solid.h
+++ b/fxjs/xfa/cjx_solid.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_SOLID_H_
 #define FXJS_XFA_CJX_SOLID_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Solid;
@@ -16,8 +17,8 @@
   explicit CJX_Solid(CXFA_Solid* node);
   ~CJX_Solid() override;
 
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_SOLID_H_
diff --git a/fxjs/xfa/cjx_source.h b/fxjs/xfa/cjx_source.h
index dcbdfde..66e61f0 100644
--- a/fxjs/xfa/cjx_source.h
+++ b/fxjs/xfa/cjx_source.h
@@ -7,7 +7,7 @@
 #ifndef FXJS_XFA_CJX_SOURCE_H_
 #define FXJS_XFA_CJX_SOURCE_H_
 
-#include "fxjs/cjx_define.h"
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Source;
@@ -17,27 +17,27 @@
   explicit CJX_Source(CXFA_Source* src);
   ~CJX_Source() override;
 
-  JS_METHOD(addNew, CJX_Source);
-  JS_METHOD(cancel, CJX_Source);
-  JS_METHOD(cancelBatch, CJX_Source);
-  JS_METHOD(close, CJX_Source);
-  JS_METHOD(deleteItem /*delete*/, CJX_Source);
-  JS_METHOD(first, CJX_Source);
-  JS_METHOD(hasDataChanged, CJX_Source);
-  JS_METHOD(isBOF, CJX_Source);
-  JS_METHOD(isEOF, CJX_Source);
-  JS_METHOD(last, CJX_Source);
-  JS_METHOD(next, CJX_Source);
-  JS_METHOD(open, CJX_Source);
-  JS_METHOD(previous, CJX_Source);
-  JS_METHOD(requery, CJX_Source);
-  JS_METHOD(resync, CJX_Source);
-  JS_METHOD(update, CJX_Source);
-  JS_METHOD(updateBatch, CJX_Source);
+  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);
 
-  JS_PROP(db);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(db);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 
  private:
   static const CJX_MethodSpec MethodSpecs[];
diff --git a/fxjs/xfa/cjx_sourceset.h b/fxjs/xfa/cjx_sourceset.h
index de4ac68..32018a9 100644
--- a/fxjs/xfa/cjx_sourceset.h
+++ b/fxjs/xfa/cjx_sourceset.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_SOURCESET_H_
 #define FXJS_XFA_CJX_SOURCESET_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_model.h"
 
 class CXFA_SourceSet;
@@ -16,8 +17,8 @@
   explicit CJX_SourceSet(CXFA_SourceSet* node);
   ~CJX_SourceSet() override;
 
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_SOURCESET_H_
diff --git a/fxjs/xfa/cjx_speak.h b/fxjs/xfa/cjx_speak.h
index 5698105..4e96b02 100644
--- a/fxjs/xfa/cjx_speak.h
+++ b/fxjs/xfa/cjx_speak.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_SPEAK_H_
 #define FXJS_XFA_CJX_SPEAK_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_textnode.h"
 
 class CXFA_Speak;
@@ -16,10 +17,10 @@
   explicit CJX_Speak(CXFA_Speak* node);
   ~CJX_Speak() override;
 
-  JS_PROP(disable);
-  JS_PROP(priority);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(disable);
+  JSE_PROP(priority);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_SPEAK_H_
diff --git a/fxjs/xfa/cjx_stipple.h b/fxjs/xfa/cjx_stipple.h
index 68ddd83..db3ba1d 100644
--- a/fxjs/xfa/cjx_stipple.h
+++ b/fxjs/xfa/cjx_stipple.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_STIPPLE_H_
 #define FXJS_XFA_CJX_STIPPLE_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Stipple;
@@ -16,9 +17,9 @@
   explicit CJX_Stipple(CXFA_Stipple* node);
   ~CJX_Stipple() override;
 
-  JS_PROP(rate);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(rate);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_STIPPLE_H_
diff --git a/fxjs/xfa/cjx_subform.h b/fxjs/xfa/cjx_subform.h
index e982fa5..2c2d19b 100644
--- a/fxjs/xfa/cjx_subform.h
+++ b/fxjs/xfa/cjx_subform.h
@@ -7,7 +7,7 @@
 #ifndef FXJS_XFA_CJX_SUBFORM_H_
 #define FXJS_XFA_CJX_SUBFORM_H_
 
-#include "fxjs/cjx_define.h"
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_container.h"
 
 class CXFA_Delta;
@@ -17,35 +17,35 @@
   explicit CJX_Subform(CXFA_Node* container);
   ~CJX_Subform() override;
 
-  JS_METHOD(execCalculate, CJX_Subform);
-  JS_METHOD(execEvent, CJX_Subform);
-  JS_METHOD(execInitialize, CJX_Subform);
-  JS_METHOD(execValidate, CJX_Subform);
+  JSE_METHOD(execCalculate, CJX_Subform);
+  JSE_METHOD(execEvent, CJX_Subform);
+  JSE_METHOD(execInitialize, CJX_Subform);
+  JSE_METHOD(execValidate, CJX_Subform);
 
-  JS_PROP(allowMacro);
-  JS_PROP(anchorType);
-  JS_PROP(colSpan);
-  JS_PROP(columnWidths);
-  JS_PROP(h);
-  JS_PROP(hAlign);
-  JS_PROP(instanceIndex);
-  JS_PROP(layout);
-  JS_PROP(locale);
-  JS_PROP(maxH);
-  JS_PROP(maxW);
-  JS_PROP(minH);
-  JS_PROP(minW);
-  JS_PROP(presence);
-  JS_PROP(relevant);
-  JS_PROP(restoreState);
-  JS_PROP(scope);
-  JS_PROP(use);
-  JS_PROP(usehref);
-  JS_PROP(validationMessage);
-  JS_PROP(vAlign);
-  JS_PROP(w);
-  JS_PROP(x);
-  JS_PROP(y);
+  JSE_PROP(allowMacro);
+  JSE_PROP(anchorType);
+  JSE_PROP(colSpan);
+  JSE_PROP(columnWidths);
+  JSE_PROP(h);
+  JSE_PROP(hAlign);
+  JSE_PROP(instanceIndex);
+  JSE_PROP(layout);
+  JSE_PROP(locale);
+  JSE_PROP(maxH);
+  JSE_PROP(maxW);
+  JSE_PROP(minH);
+  JSE_PROP(minW);
+  JSE_PROP(presence);
+  JSE_PROP(relevant);
+  JSE_PROP(restoreState);
+  JSE_PROP(scope);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
+  JSE_PROP(validationMessage);
+  JSE_PROP(vAlign);
+  JSE_PROP(w);
+  JSE_PROP(x);
+  JSE_PROP(y);
 
  private:
   static const CJX_MethodSpec MethodSpecs[];
diff --git a/fxjs/xfa/cjx_subformset.h b/fxjs/xfa/cjx_subformset.h
index 589b44d..f455156 100644
--- a/fxjs/xfa/cjx_subformset.h
+++ b/fxjs/xfa/cjx_subformset.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_SUBFORMSET_H_
 #define FXJS_XFA_CJX_SUBFORMSET_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_container.h"
 
 class CXFA_SubformSet;
@@ -16,11 +17,11 @@
   explicit CJX_SubformSet(CXFA_SubformSet* node);
   ~CJX_SubformSet() override;
 
-  JS_PROP(instanceIndex);
-  JS_PROP(relation);
-  JS_PROP(relevant);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(instanceIndex);
+  JSE_PROP(relation);
+  JSE_PROP(relevant);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_SUBFORMSET_H_
diff --git a/fxjs/xfa/cjx_subjectdn.h b/fxjs/xfa/cjx_subjectdn.h
index d13218b..22b86b2 100644
--- a/fxjs/xfa/cjx_subjectdn.h
+++ b/fxjs/xfa/cjx_subjectdn.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_SUBJECTDN_H_
 #define FXJS_XFA_CJX_SUBJECTDN_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_SubjectDN;
@@ -16,7 +17,7 @@
   explicit CJX_SubjectDN(CXFA_SubjectDN* node);
   ~CJX_SubjectDN() override;
 
-  JS_PROP(delimiter);
+  JSE_PROP(delimiter);
 };
 
 #endif  // FXJS_XFA_CJX_SUBJECTDN_H_
diff --git a/fxjs/xfa/cjx_subjectdns.h b/fxjs/xfa/cjx_subjectdns.h
index 104d826..1e3cd22 100644
--- a/fxjs/xfa/cjx_subjectdns.h
+++ b/fxjs/xfa/cjx_subjectdns.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_SUBJECTDNS_H_
 #define FXJS_XFA_CJX_SUBJECTDNS_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_SubjectDNs;
@@ -16,7 +17,7 @@
   explicit CJX_SubjectDNs(CXFA_SubjectDNs* node);
   ~CJX_SubjectDNs() override;
 
-  JS_PROP(type);
+  JSE_PROP(type);
 };
 
 #endif  // FXJS_XFA_CJX_SUBJECTDNS_H_
diff --git a/fxjs/xfa/cjx_submit.h b/fxjs/xfa/cjx_submit.h
index aefec32..90aa8d2 100644
--- a/fxjs/xfa/cjx_submit.h
+++ b/fxjs/xfa/cjx_submit.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_SUBMIT_H_
 #define FXJS_XFA_CJX_SUBMIT_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Submit;
@@ -16,13 +17,13 @@
   explicit CJX_Submit(CXFA_Submit* node);
   ~CJX_Submit() override;
 
-  JS_PROP(embedPDF);
-  JS_PROP(format);
-  JS_PROP(target);
-  JS_PROP(textEncoding);
-  JS_PROP(use);
-  JS_PROP(usehref);
-  JS_PROP(xdpContent);
+  JSE_PROP(embedPDF);
+  JSE_PROP(format);
+  JSE_PROP(target);
+  JSE_PROP(textEncoding);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
+  JSE_PROP(xdpContent);
 };
 
 #endif  // FXJS_XFA_CJX_SUBMIT_H_
diff --git a/fxjs/xfa/cjx_template.h b/fxjs/xfa/cjx_template.h
index e67b1b7..d54020d 100644
--- a/fxjs/xfa/cjx_template.h
+++ b/fxjs/xfa/cjx_template.h
@@ -7,7 +7,7 @@
 #ifndef FXJS_XFA_CJX_TEMPLATE_H_
 #define FXJS_XFA_CJX_TEMPLATE_H_
 
-#include "fxjs/cjx_define.h"
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_model.h"
 
 class CXFA_Template;
@@ -20,12 +20,12 @@
   /* 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. */
-  JS_METHOD(execCalculate, CJX_Template);
-  JS_METHOD(execInitialize, CJX_Template);
-  JS_METHOD(execValidate, CJX_Template);
-  JS_METHOD(formNodes, CJX_Template);
-  JS_METHOD(recalculate, CJX_Template);
-  JS_METHOD(remerge, CJX_Template);
+  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);
 
  private:
   static const CJX_MethodSpec MethodSpecs[];
diff --git a/fxjs/xfa/cjx_text.h b/fxjs/xfa/cjx_text.h
index 386a7a9..a5c0e81 100644
--- a/fxjs/xfa/cjx_text.h
+++ b/fxjs/xfa/cjx_text.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_TEXT_H_
 #define FXJS_XFA_CJX_TEXT_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_content.h"
 
 class CXFA_Text;
@@ -16,11 +17,11 @@
   explicit CJX_Text(CXFA_Text* node);
   ~CJX_Text() override;
 
-  JS_PROP(defaultValue); /* {default} */
-  JS_PROP(maxChars);
-  JS_PROP(use);
-  JS_PROP(usehref);
-  JS_PROP(value);
+  JSE_PROP(defaultValue); /* {default} */
+  JSE_PROP(maxChars);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
+  JSE_PROP(value);
 };
 
 #endif  // FXJS_XFA_CJX_TEXT_H_
diff --git a/fxjs/xfa/cjx_textedit.h b/fxjs/xfa/cjx_textedit.h
index c7f42c9..1c41b9e 100644
--- a/fxjs/xfa/cjx_textedit.h
+++ b/fxjs/xfa/cjx_textedit.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_TEXTEDIT_H_
 #define FXJS_XFA_CJX_TEXTEDIT_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_TextEdit;
@@ -16,12 +17,12 @@
   explicit CJX_TextEdit(CXFA_TextEdit* node);
   ~CJX_TextEdit() override;
 
-  JS_PROP(allowRichText);
-  JS_PROP(hScrollPolicy);
-  JS_PROP(multiLine);
-  JS_PROP(use);
-  JS_PROP(usehref);
-  JS_PROP(vScrollPolicy);
+  JSE_PROP(allowRichText);
+  JSE_PROP(hScrollPolicy);
+  JSE_PROP(multiLine);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
+  JSE_PROP(vScrollPolicy);
 };
 
 #endif  // FXJS_XFA_CJX_TEXTEDIT_H_
diff --git a/fxjs/xfa/cjx_textnode.h b/fxjs/xfa/cjx_textnode.h
index f3dbe19..3024a2f 100644
--- a/fxjs/xfa/cjx_textnode.h
+++ b/fxjs/xfa/cjx_textnode.h
@@ -7,7 +7,7 @@
 #ifndef FXJS_XFA_CJX_TEXTNODE_H_
 #define FXJS_XFA_CJX_TEXTNODE_H_
 
-#include "fxjs/cjx_define.h"
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Node;
@@ -17,8 +17,8 @@
   explicit CJX_TextNode(CXFA_Node* node);
   ~CJX_TextNode() override;
 
-  JS_PROP(defaultValue); /* {default} */
-  JS_PROP(value);
+  JSE_PROP(defaultValue); /* {default} */
+  JSE_PROP(value);
 };
 
 #endif  // FXJS_XFA_CJX_TEXTNODE_H_
diff --git a/fxjs/xfa/cjx_time.h b/fxjs/xfa/cjx_time.h
index 95b05cc..32e75cb 100644
--- a/fxjs/xfa/cjx_time.h
+++ b/fxjs/xfa/cjx_time.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_TIME_H_
 #define FXJS_XFA_CJX_TIME_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_content.h"
 
 class CXFA_Time;
@@ -16,10 +17,10 @@
   explicit CJX_Time(CXFA_Time* node);
   ~CJX_Time() override;
 
-  JS_PROP(defaultValue); /* {default} */
-  JS_PROP(use);
-  JS_PROP(usehref);
-  JS_PROP(value);
+  JSE_PROP(defaultValue); /* {default} */
+  JSE_PROP(use);
+  JSE_PROP(usehref);
+  JSE_PROP(value);
 };
 
 #endif  // FXJS_XFA_CJX_TIME_H_
diff --git a/fxjs/xfa/cjx_timestamp.h b/fxjs/xfa/cjx_timestamp.h
index ad7ab02..c8aab82 100644
--- a/fxjs/xfa/cjx_timestamp.h
+++ b/fxjs/xfa/cjx_timestamp.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_TIMESTAMP_H_
 #define FXJS_XFA_CJX_TIMESTAMP_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_TimeStamp;
@@ -16,10 +17,10 @@
   explicit CJX_TimeStamp(CXFA_TimeStamp* node);
   ~CJX_TimeStamp() override;
 
-  JS_PROP(server);
-  JS_PROP(type);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(server);
+  JSE_PROP(type);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_TIMESTAMP_H_
diff --git a/fxjs/xfa/cjx_tooltip.h b/fxjs/xfa/cjx_tooltip.h
index 178d11b..51c21d8 100644
--- a/fxjs/xfa/cjx_tooltip.h
+++ b/fxjs/xfa/cjx_tooltip.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_TOOLTIP_H_
 #define FXJS_XFA_CJX_TOOLTIP_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_textnode.h"
 
 class CXFA_ToolTip;
@@ -16,8 +17,8 @@
   explicit CJX_ToolTip(CXFA_ToolTip* node);
   ~CJX_ToolTip() override;
 
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_TOOLTIP_H_
diff --git a/fxjs/xfa/cjx_traversal.h b/fxjs/xfa/cjx_traversal.h
index d9072f3..f7e1258 100644
--- a/fxjs/xfa/cjx_traversal.h
+++ b/fxjs/xfa/cjx_traversal.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_TRAVERSAL_H_
 #define FXJS_XFA_CJX_TRAVERSAL_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Traversal;
@@ -16,8 +17,8 @@
   explicit CJX_Traversal(CXFA_Traversal* node);
   ~CJX_Traversal() override;
 
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_TRAVERSAL_H_
diff --git a/fxjs/xfa/cjx_traverse.h b/fxjs/xfa/cjx_traverse.h
index 2eef88e..d6f43af 100644
--- a/fxjs/xfa/cjx_traverse.h
+++ b/fxjs/xfa/cjx_traverse.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_TRAVERSE_H_
 #define FXJS_XFA_CJX_TRAVERSE_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Traverse;
@@ -16,10 +17,10 @@
   explicit CJX_Traverse(CXFA_Traverse* node);
   ~CJX_Traverse() override;
 
-  JS_PROP(operation);
-  JS_PROP(ref);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(operation);
+  JSE_PROP(ref);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_TRAVERSE_H_
diff --git a/fxjs/xfa/cjx_tree.h b/fxjs/xfa/cjx_tree.h
index 22b3aca..5634cf4 100644
--- a/fxjs/xfa/cjx_tree.h
+++ b/fxjs/xfa/cjx_tree.h
@@ -7,7 +7,7 @@
 #ifndef FXJS_XFA_CJX_TREE_H_
 #define FXJS_XFA_CJX_TREE_H_
 
-#include "fxjs/cjx_define.h"
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_object.h"
 
 class CXFA_Object;
@@ -18,17 +18,17 @@
   explicit CJX_Tree(CXFA_Object* obj);
   ~CJX_Tree() override;
 
-  JS_METHOD(resolveNode, CJX_Tree);
-  JS_METHOD(resolveNodes, CJX_Tree);
+  JSE_METHOD(resolveNode, CJX_Tree);
+  JSE_METHOD(resolveNodes, CJX_Tree);
 
-  JS_PROP(all);
-  JS_PROP(classAll);
-  JS_PROP(classIndex);
-  JS_PROP(index);
-  JS_PROP(name);
-  JS_PROP(nodes);
-  JS_PROP(parent);
-  JS_PROP(somExpression);
+  JSE_PROP(all);
+  JSE_PROP(classAll);
+  JSE_PROP(classIndex);
+  JSE_PROP(index);
+  JSE_PROP(name);
+  JSE_PROP(nodes);
+  JSE_PROP(parent);
+  JSE_PROP(somExpression);
 
  private:
   void ResolveNodeList(CFXJSE_Value* pValue,
diff --git a/fxjs/xfa/cjx_treelist.h b/fxjs/xfa/cjx_treelist.h
index b3f1daf..c6f2919 100644
--- a/fxjs/xfa/cjx_treelist.h
+++ b/fxjs/xfa/cjx_treelist.h
@@ -7,7 +7,7 @@
 #ifndef FXJS_XFA_CJX_TREELIST_H_
 #define FXJS_XFA_CJX_TREELIST_H_
 
-#include "fxjs/cjx_define.h"
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_list.h"
 
 class CXFA_TreeList;
@@ -17,7 +17,7 @@
   explicit CJX_TreeList(CXFA_TreeList* list);
   ~CJX_TreeList() override;
 
-  JS_METHOD(namedItem, CJX_TreeList);
+  JSE_METHOD(namedItem, CJX_TreeList);
 
  private:
   CXFA_TreeList* GetXFATreeList();
diff --git a/fxjs/xfa/cjx_ui.h b/fxjs/xfa/cjx_ui.h
index e82b1de..e63fa47 100644
--- a/fxjs/xfa/cjx_ui.h
+++ b/fxjs/xfa/cjx_ui.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_UI_H_
 #define FXJS_XFA_CJX_UI_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Ui;
@@ -16,8 +17,8 @@
   explicit CJX_Ui(CXFA_Ui* node);
   ~CJX_Ui() override;
 
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_UI_H_
diff --git a/fxjs/xfa/cjx_update.h b/fxjs/xfa/cjx_update.h
index c1acb4b..f603409 100644
--- a/fxjs/xfa/cjx_update.h
+++ b/fxjs/xfa/cjx_update.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_UPDATE_H_
 #define FXJS_XFA_CJX_UPDATE_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_textnode.h"
 
 class CXFA_Update;
@@ -16,8 +17,8 @@
   explicit CJX_Update(CXFA_Update* node);
   ~CJX_Update() override;
 
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_UPDATE_H_
diff --git a/fxjs/xfa/cjx_uri.h b/fxjs/xfa/cjx_uri.h
index 805bc5c..e7aa55f 100644
--- a/fxjs/xfa/cjx_uri.h
+++ b/fxjs/xfa/cjx_uri.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_URI_H_
 #define FXJS_XFA_CJX_URI_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_textnode.h"
 
 class CXFA_Uri;
@@ -16,8 +17,8 @@
   explicit CJX_Uri(CXFA_Uri* node);
   ~CJX_Uri() override;
 
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_URI_H_
diff --git a/fxjs/xfa/cjx_user.h b/fxjs/xfa/cjx_user.h
index 6111df8..85b0271 100644
--- a/fxjs/xfa/cjx_user.h
+++ b/fxjs/xfa/cjx_user.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_USER_H_
 #define FXJS_XFA_CJX_USER_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_textnode.h"
 
 class CXFA_User;
@@ -16,8 +17,8 @@
   explicit CJX_User(CXFA_User* node);
   ~CJX_User() override;
 
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_USER_H_
diff --git a/fxjs/xfa/cjx_validate.h b/fxjs/xfa/cjx_validate.h
index c54923d..62eb83c 100644
--- a/fxjs/xfa/cjx_validate.h
+++ b/fxjs/xfa/cjx_validate.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_VALIDATE_H_
 #define FXJS_XFA_CJX_VALIDATE_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Validate;
@@ -16,11 +17,11 @@
   explicit CJX_Validate(CXFA_Validate* node);
   ~CJX_Validate() override;
 
-  JS_PROP(formatTest);
-  JS_PROP(nullTest);
-  JS_PROP(scriptTest);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(formatTest);
+  JSE_PROP(nullTest);
+  JSE_PROP(scriptTest);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_VALIDATE_H_
diff --git a/fxjs/xfa/cjx_value.h b/fxjs/xfa/cjx_value.h
index f9c2a2c..71984c3 100644
--- a/fxjs/xfa/cjx_value.h
+++ b/fxjs/xfa/cjx_value.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_VALUE_H_
 #define FXJS_XFA_CJX_VALUE_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_Value;
@@ -16,10 +17,10 @@
   explicit CJX_Value(CXFA_Value* node);
   ~CJX_Value() override;
 
-  JS_PROP(override);
-  JS_PROP(relevant);
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(override);
+  JSE_PROP(relevant);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_VALUE_H_
diff --git a/fxjs/xfa/cjx_variables.h b/fxjs/xfa/cjx_variables.h
index 8ed373e..302cd05 100644
--- a/fxjs/xfa/cjx_variables.h
+++ b/fxjs/xfa/cjx_variables.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_VARIABLES_H_
 #define FXJS_XFA_CJX_VARIABLES_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_container.h"
 
 class CXFA_Variables;
@@ -16,8 +17,8 @@
   explicit CJX_Variables(CXFA_Variables* node);
   ~CJX_Variables() override;
 
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_VARIABLES_H_
diff --git a/fxjs/xfa/cjx_wsdladdress.h b/fxjs/xfa/cjx_wsdladdress.h
index a742d1a..cbe8e72 100644
--- a/fxjs/xfa/cjx_wsdladdress.h
+++ b/fxjs/xfa/cjx_wsdladdress.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_WSDLADDRESS_H_
 #define FXJS_XFA_CJX_WSDLADDRESS_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_textnode.h"
 
 class CXFA_WsdlAddress;
@@ -16,8 +17,8 @@
   explicit CJX_WsdlAddress(CXFA_WsdlAddress* node);
   ~CJX_WsdlAddress() override;
 
-  JS_PROP(use);
-  JS_PROP(usehref);
+  JSE_PROP(use);
+  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_WSDLADDRESS_H_
diff --git a/fxjs/xfa/cjx_wsdlconnection.h b/fxjs/xfa/cjx_wsdlconnection.h
index eb729c2..346b908 100644
--- a/fxjs/xfa/cjx_wsdlconnection.h
+++ b/fxjs/xfa/cjx_wsdlconnection.h
@@ -7,7 +7,7 @@
 #ifndef FXJS_XFA_CJX_WSDLCONNECTION_H_
 #define FXJS_XFA_CJX_WSDLCONNECTION_H_
 
-#include "fxjs/cjx_define.h"
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_WsdlConnection;
@@ -17,10 +17,10 @@
   explicit CJX_WsdlConnection(CXFA_WsdlConnection* connection);
   ~CJX_WsdlConnection() override;
 
-  JS_METHOD(execute, CJX_WsdlConnection);
+  JSE_METHOD(execute, CJX_WsdlConnection);
 
-  JS_PROP(dataDescription);
-  JS_PROP(execute);
+  JSE_PROP(dataDescription);
+  JSE_PROP(execute);
 
  private:
   static const CJX_MethodSpec MethodSpecs[];
diff --git a/fxjs/xfa/cjx_xfa.h b/fxjs/xfa/cjx_xfa.h
index 0c8ed7e..025e9a9 100644
--- a/fxjs/xfa/cjx_xfa.h
+++ b/fxjs/xfa/cjx_xfa.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_XFA_H_
 #define FXJS_XFA_CJX_XFA_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_model.h"
 
 class CXFA_Xfa;
@@ -16,9 +17,9 @@
   explicit CJX_Xfa(CXFA_Xfa* node);
   ~CJX_Xfa() override;
 
-  JS_PROP(thisValue); /* this */
-  JS_PROP(timeStamp);
-  JS_PROP(uuid);
+  JSE_PROP(thisValue); /* this */
+  JSE_PROP(timeStamp);
+  JSE_PROP(uuid);
 };
 
 #endif  // FXJS_XFA_CJX_XFA_H_
diff --git a/fxjs/xfa/cjx_xmlconnection.h b/fxjs/xfa/cjx_xmlconnection.h
index 03c5c37..cb63e75 100644
--- a/fxjs/xfa/cjx_xmlconnection.h
+++ b/fxjs/xfa/cjx_xmlconnection.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_XMLCONNECTION_H_
 #define FXJS_XFA_CJX_XMLCONNECTION_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_XmlConnection;
@@ -16,7 +17,7 @@
   explicit CJX_XmlConnection(CXFA_XmlConnection* node);
   ~CJX_XmlConnection() override;
 
-  JS_PROP(dataDescription);
+  JSE_PROP(dataDescription);
 };
 
 #endif  // FXJS_XFA_CJX_XMLCONNECTION_H_
diff --git a/fxjs/xfa/cjx_xsdconnection.h b/fxjs/xfa/cjx_xsdconnection.h
index 66c79a1..ec5059a 100644
--- a/fxjs/xfa/cjx_xsdconnection.h
+++ b/fxjs/xfa/cjx_xsdconnection.h
@@ -7,6 +7,7 @@
 #ifndef FXJS_XFA_CJX_XSDCONNECTION_H_
 #define FXJS_XFA_CJX_XSDCONNECTION_H_
 
+#include "fxjs/jse_define.h"
 #include "fxjs/xfa/cjx_node.h"
 
 class CXFA_XsdConnection;
@@ -16,7 +17,7 @@
   explicit CJX_XsdConnection(CXFA_XsdConnection* node);
   ~CJX_XsdConnection() override;
 
-  JS_PROP(dataDescription);
+  JSE_PROP(dataDescription);
 };
 
 #endif  // FXJS_XFA_CJX_XSDCONNECTION_H_
