Remove ScriptAttributeString() wrappers, last part.

Change-Id: Id3c99547cb796329b704fb3945268ec307027dbc
Reviewed-on: https://pdfium-review.googlesource.com/c/46630
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/fxjs/xfa/cjx_stipple.cpp b/fxjs/xfa/cjx_stipple.cpp
index 158f30f..773f142 100644
--- a/fxjs/xfa/cjx_stipple.cpp
+++ b/fxjs/xfa/cjx_stipple.cpp
@@ -11,21 +11,3 @@
 CJX_Stipple::CJX_Stipple(CXFA_Stipple* node) : CJX_Node(node) {}
 
 CJX_Stipple::~CJX_Stipple() = default;
-
-void CJX_Stipple::use(CFXJSE_Value* pValue,
-                      bool bSetting,
-                      XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Stipple::rate(CFXJSE_Value* pValue,
-                       bool bSetting,
-                       XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Stipple::usehref(CFXJSE_Value* pValue,
-                          bool bSetting,
-                          XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_stipple.h b/fxjs/xfa/cjx_stipple.h
index 9b6f56d..87fb0b9 100644
--- a/fxjs/xfa/cjx_stipple.h
+++ b/fxjs/xfa/cjx_stipple.h
@@ -16,10 +16,6 @@
  public:
   explicit CJX_Stipple(CXFA_Stipple* node);
   ~CJX_Stipple() override;
-
-  JSE_PROP(rate);
-  JSE_PROP(use);
-  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_STIPPLE_H_
diff --git a/fxjs/xfa/cjx_subform.cpp b/fxjs/xfa/cjx_subform.cpp
index adf4290..3d51625 100644
--- a/fxjs/xfa/cjx_subform.cpp
+++ b/fxjs/xfa/cjx_subform.cpp
@@ -99,134 +99,14 @@
   ScriptSomInstanceIndex(pValue, bSetting, eAttribute);
 }
 
-void CJX_Subform::allowMacro(CFXJSE_Value* pValue,
-                             bool bSetting,
-                             XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Subform::anchorType(CFXJSE_Value* pValue,
-                             bool bSetting,
-                             XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Subform::colSpan(CFXJSE_Value* pValue,
-                          bool bSetting,
-                          XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Subform::columnWidths(CFXJSE_Value* pValue,
-                               bool bSetting,
-                               XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Subform::h(CFXJSE_Value* pValue,
-                    bool bSetting,
-                    XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Subform::hAlign(CFXJSE_Value* pValue,
-                         bool bSetting,
-                         XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
 void CJX_Subform::layout(CFXJSE_Value* pValue,
                          bool bSetting,
                          XFA_Attribute eAttribute) {
   ScriptAttributeString(pValue, bSetting, eAttribute);
 }
 
-void CJX_Subform::maxH(CFXJSE_Value* pValue,
-                       bool bSetting,
-                       XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Subform::maxW(CFXJSE_Value* pValue,
-                       bool bSetting,
-                       XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Subform::minH(CFXJSE_Value* pValue,
-                       bool bSetting,
-                       XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Subform::minW(CFXJSE_Value* pValue,
-                       bool bSetting,
-                       XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Subform::presence(CFXJSE_Value* pValue,
-                           bool bSetting,
-                           XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Subform::relevant(CFXJSE_Value* pValue,
-                           bool bSetting,
-                           XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Subform::restoreState(CFXJSE_Value* pValue,
-                               bool bSetting,
-                               XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Subform::scope(CFXJSE_Value* pValue,
-                        bool bSetting,
-                        XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Subform::use(CFXJSE_Value* pValue,
-                      bool bSetting,
-                      XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Subform::usehref(CFXJSE_Value* pValue,
-                          bool bSetting,
-                          XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
 void CJX_Subform::validationMessage(CFXJSE_Value* pValue,
                                     bool bSetting,
                                     XFA_Attribute eAttribute) {
   ScriptSomValidationMessage(pValue, bSetting, eAttribute);
 }
-
-void CJX_Subform::vAlign(CFXJSE_Value* pValue,
-                         bool bSetting,
-                         XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Subform::w(CFXJSE_Value* pValue,
-                    bool bSetting,
-                    XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Subform::x(CFXJSE_Value* pValue,
-                    bool bSetting,
-                    XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Subform::y(CFXJSE_Value* pValue,
-                    bool bSetting,
-                    XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_subform.h b/fxjs/xfa/cjx_subform.h
index 67947d8..d631e91 100644
--- a/fxjs/xfa/cjx_subform.h
+++ b/fxjs/xfa/cjx_subform.h
@@ -22,30 +22,10 @@
   JSE_METHOD(execInitialize, CJX_Subform);
   JSE_METHOD(execValidate, CJX_Subform);
 
-  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.cpp b/fxjs/xfa/cjx_subformset.cpp
index c001a1b..fd9472b 100644
--- a/fxjs/xfa/cjx_subformset.cpp
+++ b/fxjs/xfa/cjx_subformset.cpp
@@ -12,30 +12,6 @@
 
 CJX_SubformSet::~CJX_SubformSet() = default;
 
-void CJX_SubformSet::use(CFXJSE_Value* pValue,
-                         bool bSetting,
-                         XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_SubformSet::relation(CFXJSE_Value* pValue,
-                              bool bSetting,
-                              XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_SubformSet::relevant(CFXJSE_Value* pValue,
-                              bool bSetting,
-                              XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_SubformSet::usehref(CFXJSE_Value* pValue,
-                             bool bSetting,
-                             XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
 void CJX_SubformSet::instanceIndex(CFXJSE_Value* pValue,
                                    bool bSetting,
                                    XFA_Attribute eAttribute) {
diff --git a/fxjs/xfa/cjx_subformset.h b/fxjs/xfa/cjx_subformset.h
index 71bb438..37cbc21 100644
--- a/fxjs/xfa/cjx_subformset.h
+++ b/fxjs/xfa/cjx_subformset.h
@@ -18,10 +18,6 @@
   ~CJX_SubformSet() override;
 
   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.cpp b/fxjs/xfa/cjx_subjectdn.cpp
index 0fb7594..8224d8f 100644
--- a/fxjs/xfa/cjx_subjectdn.cpp
+++ b/fxjs/xfa/cjx_subjectdn.cpp
@@ -11,9 +11,3 @@
 CJX_SubjectDN::CJX_SubjectDN(CXFA_SubjectDN* node) : CJX_Node(node) {}
 
 CJX_SubjectDN::~CJX_SubjectDN() = default;
-
-void CJX_SubjectDN::delimiter(CFXJSE_Value* pValue,
-                              bool bSetting,
-                              XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_subjectdn.h b/fxjs/xfa/cjx_subjectdn.h
index 12e8e9a..4f4e728 100644
--- a/fxjs/xfa/cjx_subjectdn.h
+++ b/fxjs/xfa/cjx_subjectdn.h
@@ -16,8 +16,6 @@
  public:
   explicit CJX_SubjectDN(CXFA_SubjectDN* node);
   ~CJX_SubjectDN() override;
-
-  JSE_PROP(delimiter);
 };
 
 #endif  // FXJS_XFA_CJX_SUBJECTDN_H_
diff --git a/fxjs/xfa/cjx_subjectdns.cpp b/fxjs/xfa/cjx_subjectdns.cpp
index 6b996cc..5dc9aaf 100644
--- a/fxjs/xfa/cjx_subjectdns.cpp
+++ b/fxjs/xfa/cjx_subjectdns.cpp
@@ -11,9 +11,3 @@
 CJX_SubjectDNs::CJX_SubjectDNs(CXFA_SubjectDNs* node) : CJX_Node(node) {}
 
 CJX_SubjectDNs::~CJX_SubjectDNs() = default;
-
-void CJX_SubjectDNs::type(CFXJSE_Value* pValue,
-                          bool bSetting,
-                          XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_subjectdns.h b/fxjs/xfa/cjx_subjectdns.h
index 04af199..c128f7c 100644
--- a/fxjs/xfa/cjx_subjectdns.h
+++ b/fxjs/xfa/cjx_subjectdns.h
@@ -16,8 +16,6 @@
  public:
   explicit CJX_SubjectDNs(CXFA_SubjectDNs* node);
   ~CJX_SubjectDNs() override;
-
-  JSE_PROP(type);
 };
 
 #endif  // FXJS_XFA_CJX_SUBJECTDNS_H_
diff --git a/fxjs/xfa/cjx_submit.cpp b/fxjs/xfa/cjx_submit.cpp
index 5afe360..c703117 100644
--- a/fxjs/xfa/cjx_submit.cpp
+++ b/fxjs/xfa/cjx_submit.cpp
@@ -11,45 +11,3 @@
 CJX_Submit::CJX_Submit(CXFA_Submit* node) : CJX_Node(node) {}
 
 CJX_Submit::~CJX_Submit() = default;
-
-void CJX_Submit::format(CFXJSE_Value* pValue,
-                        bool bSetting,
-                        XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Submit::embedPDF(CFXJSE_Value* pValue,
-                          bool bSetting,
-                          XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Submit::use(CFXJSE_Value* pValue,
-                     bool bSetting,
-                     XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Submit::usehref(CFXJSE_Value* pValue,
-                         bool bSetting,
-                         XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Submit::target(CFXJSE_Value* pValue,
-                        bool bSetting,
-                        XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Submit::textEncoding(CFXJSE_Value* pValue,
-                              bool bSetting,
-                              XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Submit::xdpContent(CFXJSE_Value* pValue,
-                            bool bSetting,
-                            XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_submit.h b/fxjs/xfa/cjx_submit.h
index 0ec0cf4..668ecd4 100644
--- a/fxjs/xfa/cjx_submit.h
+++ b/fxjs/xfa/cjx_submit.h
@@ -16,14 +16,6 @@
  public:
   explicit CJX_Submit(CXFA_Submit* node);
   ~CJX_Submit() override;
-
-  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_text.cpp b/fxjs/xfa/cjx_text.cpp
index 6b9bebb..21ef899 100644
--- a/fxjs/xfa/cjx_text.cpp
+++ b/fxjs/xfa/cjx_text.cpp
@@ -12,30 +12,12 @@
 
 CJX_Text::~CJX_Text() = default;
 
-void CJX_Text::use(CFXJSE_Value* pValue,
-                   bool bSetting,
-                   XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Text::maxChars(CFXJSE_Value* pValue,
-                        bool bSetting,
-                        XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
 void CJX_Text::defaultValue(CFXJSE_Value* pValue,
                             bool bSetting,
                             XFA_Attribute eAttribute) {
   ScriptSomDefaultValue(pValue, bSetting, eAttribute);
 }
 
-void CJX_Text::usehref(CFXJSE_Value* pValue,
-                       bool bSetting,
-                       XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
 void CJX_Text::value(CFXJSE_Value* pValue,
                      bool bSetting,
                      XFA_Attribute eAttribute) {
diff --git a/fxjs/xfa/cjx_text.h b/fxjs/xfa/cjx_text.h
index 1a58b24..c4e7e7e 100644
--- a/fxjs/xfa/cjx_text.h
+++ b/fxjs/xfa/cjx_text.h
@@ -18,9 +18,6 @@
   ~CJX_Text() override;
 
   JSE_PROP(defaultValue); /* {default} */
-  JSE_PROP(maxChars);
-  JSE_PROP(use);
-  JSE_PROP(usehref);
   JSE_PROP(value);
 };
 
diff --git a/fxjs/xfa/cjx_textedit.cpp b/fxjs/xfa/cjx_textedit.cpp
index 3df5312..d483658 100644
--- a/fxjs/xfa/cjx_textedit.cpp
+++ b/fxjs/xfa/cjx_textedit.cpp
@@ -11,39 +11,3 @@
 CJX_TextEdit::CJX_TextEdit(CXFA_TextEdit* node) : CJX_Node(node) {}
 
 CJX_TextEdit::~CJX_TextEdit() = default;
-
-void CJX_TextEdit::vScrollPolicy(CFXJSE_Value* pValue,
-                                 bool bSetting,
-                                 XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_TextEdit::use(CFXJSE_Value* pValue,
-                       bool bSetting,
-                       XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_TextEdit::allowRichText(CFXJSE_Value* pValue,
-                                 bool bSetting,
-                                 XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_TextEdit::multiLine(CFXJSE_Value* pValue,
-                             bool bSetting,
-                             XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_TextEdit::usehref(CFXJSE_Value* pValue,
-                           bool bSetting,
-                           XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_TextEdit::hScrollPolicy(CFXJSE_Value* pValue,
-                                 bool bSetting,
-                                 XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_textedit.h b/fxjs/xfa/cjx_textedit.h
index bc408d2..00beabb 100644
--- a/fxjs/xfa/cjx_textedit.h
+++ b/fxjs/xfa/cjx_textedit.h
@@ -16,13 +16,6 @@
  public:
   explicit CJX_TextEdit(CXFA_TextEdit* node);
   ~CJX_TextEdit() override;
-
-  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_time.cpp b/fxjs/xfa/cjx_time.cpp
index 957f839..0dc09cf 100644
--- a/fxjs/xfa/cjx_time.cpp
+++ b/fxjs/xfa/cjx_time.cpp
@@ -12,24 +12,12 @@
 
 CJX_Time::~CJX_Time() = default;
 
-void CJX_Time::use(CFXJSE_Value* pValue,
-                   bool bSetting,
-                   XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
 void CJX_Time::defaultValue(CFXJSE_Value* pValue,
                             bool bSetting,
                             XFA_Attribute eAttribute) {
   ScriptSomDefaultValue(pValue, bSetting, eAttribute);
 }
 
-void CJX_Time::usehref(CFXJSE_Value* pValue,
-                       bool bSetting,
-                       XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
 void CJX_Time::value(CFXJSE_Value* pValue,
                      bool bSetting,
                      XFA_Attribute eAttribute) {
diff --git a/fxjs/xfa/cjx_time.h b/fxjs/xfa/cjx_time.h
index 0002029..4ec70c6 100644
--- a/fxjs/xfa/cjx_time.h
+++ b/fxjs/xfa/cjx_time.h
@@ -18,8 +18,6 @@
   ~CJX_Time() override;
 
   JSE_PROP(defaultValue); /* {default} */
-  JSE_PROP(use);
-  JSE_PROP(usehref);
   JSE_PROP(value);
 };
 
diff --git a/fxjs/xfa/cjx_timestamp.cpp b/fxjs/xfa/cjx_timestamp.cpp
index 5733631..5e28752 100644
--- a/fxjs/xfa/cjx_timestamp.cpp
+++ b/fxjs/xfa/cjx_timestamp.cpp
@@ -11,27 +11,3 @@
 CJX_TimeStamp::CJX_TimeStamp(CXFA_TimeStamp* node) : CJX_Node(node) {}
 
 CJX_TimeStamp::~CJX_TimeStamp() = default;
-
-void CJX_TimeStamp::use(CFXJSE_Value* pValue,
-                        bool bSetting,
-                        XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_TimeStamp::type(CFXJSE_Value* pValue,
-                         bool bSetting,
-                         XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_TimeStamp::server(CFXJSE_Value* pValue,
-                           bool bSetting,
-                           XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_TimeStamp::usehref(CFXJSE_Value* pValue,
-                            bool bSetting,
-                            XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_timestamp.h b/fxjs/xfa/cjx_timestamp.h
index 7183222..9b814a8 100644
--- a/fxjs/xfa/cjx_timestamp.h
+++ b/fxjs/xfa/cjx_timestamp.h
@@ -16,11 +16,6 @@
  public:
   explicit CJX_TimeStamp(CXFA_TimeStamp* node);
   ~CJX_TimeStamp() override;
-
-  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.cpp b/fxjs/xfa/cjx_tooltip.cpp
index b3bfe9f..fc49600 100644
--- a/fxjs/xfa/cjx_tooltip.cpp
+++ b/fxjs/xfa/cjx_tooltip.cpp
@@ -11,15 +11,3 @@
 CJX_ToolTip::CJX_ToolTip(CXFA_ToolTip* node) : CJX_TextNode(node) {}
 
 CJX_ToolTip::~CJX_ToolTip() = default;
-
-void CJX_ToolTip::use(CFXJSE_Value* pValue,
-                      bool bSetting,
-                      XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_ToolTip::usehref(CFXJSE_Value* pValue,
-                          bool bSetting,
-                          XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_tooltip.h b/fxjs/xfa/cjx_tooltip.h
index 08bcd43..8a96bf8 100644
--- a/fxjs/xfa/cjx_tooltip.h
+++ b/fxjs/xfa/cjx_tooltip.h
@@ -16,9 +16,6 @@
  public:
   explicit CJX_ToolTip(CXFA_ToolTip* node);
   ~CJX_ToolTip() override;
-
-  JSE_PROP(use);
-  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_TOOLTIP_H_
diff --git a/fxjs/xfa/cjx_traversal.cpp b/fxjs/xfa/cjx_traversal.cpp
index 040a9ae..3c46c7d 100644
--- a/fxjs/xfa/cjx_traversal.cpp
+++ b/fxjs/xfa/cjx_traversal.cpp
@@ -11,15 +11,3 @@
 CJX_Traversal::CJX_Traversal(CXFA_Traversal* node) : CJX_Node(node) {}
 
 CJX_Traversal::~CJX_Traversal() = default;
-
-void CJX_Traversal::use(CFXJSE_Value* pValue,
-                        bool bSetting,
-                        XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Traversal::usehref(CFXJSE_Value* pValue,
-                            bool bSetting,
-                            XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_traversal.h b/fxjs/xfa/cjx_traversal.h
index 0872cf7..fb4014e 100644
--- a/fxjs/xfa/cjx_traversal.h
+++ b/fxjs/xfa/cjx_traversal.h
@@ -16,9 +16,6 @@
  public:
   explicit CJX_Traversal(CXFA_Traversal* node);
   ~CJX_Traversal() override;
-
-  JSE_PROP(use);
-  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_TRAVERSAL_H_
diff --git a/fxjs/xfa/cjx_traverse.cpp b/fxjs/xfa/cjx_traverse.cpp
index 0b5cfe7..6364104 100644
--- a/fxjs/xfa/cjx_traverse.cpp
+++ b/fxjs/xfa/cjx_traverse.cpp
@@ -11,27 +11,3 @@
 CJX_Traverse::CJX_Traverse(CXFA_Traverse* node) : CJX_Node(node) {}
 
 CJX_Traverse::~CJX_Traverse() = default;
-
-void CJX_Traverse::ref(CFXJSE_Value* pValue,
-                       bool bSetting,
-                       XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Traverse::use(CFXJSE_Value* pValue,
-                       bool bSetting,
-                       XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Traverse::operation(CFXJSE_Value* pValue,
-                             bool bSetting,
-                             XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Traverse::usehref(CFXJSE_Value* pValue,
-                           bool bSetting,
-                           XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_traverse.h b/fxjs/xfa/cjx_traverse.h
index aa57334..8ad204e 100644
--- a/fxjs/xfa/cjx_traverse.h
+++ b/fxjs/xfa/cjx_traverse.h
@@ -16,11 +16,6 @@
  public:
   explicit CJX_Traverse(CXFA_Traverse* node);
   ~CJX_Traverse() override;
-
-  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.cpp b/fxjs/xfa/cjx_tree.cpp
index ed10d6a..229444f 100644
--- a/fxjs/xfa/cjx_tree.cpp
+++ b/fxjs/xfa/cjx_tree.cpp
@@ -130,12 +130,6 @@
                   XFA_RESOLVENODE_Siblings | XFA_RESOLVENODE_ALL, nullptr);
 }
 
-void CJX_Tree::name(CFXJSE_Value* pValue,
-                    bool bSetting,
-                    XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
 void CJX_Tree::nodes(CFXJSE_Value* pValue,
                      bool bSetting,
                      XFA_Attribute eAttribute) {
diff --git a/fxjs/xfa/cjx_tree.h b/fxjs/xfa/cjx_tree.h
index 5634cf4..a090db8 100644
--- a/fxjs/xfa/cjx_tree.h
+++ b/fxjs/xfa/cjx_tree.h
@@ -25,7 +25,6 @@
   JSE_PROP(classAll);
   JSE_PROP(classIndex);
   JSE_PROP(index);
-  JSE_PROP(name);
   JSE_PROP(nodes);
   JSE_PROP(parent);
   JSE_PROP(somExpression);
diff --git a/fxjs/xfa/cjx_ui.cpp b/fxjs/xfa/cjx_ui.cpp
index baec8ad..c995947 100644
--- a/fxjs/xfa/cjx_ui.cpp
+++ b/fxjs/xfa/cjx_ui.cpp
@@ -11,15 +11,3 @@
 CJX_Ui::CJX_Ui(CXFA_Ui* node) : CJX_Node(node) {}
 
 CJX_Ui::~CJX_Ui() = default;
-
-void CJX_Ui::use(CFXJSE_Value* pValue,
-                 bool bSetting,
-                 XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Ui::usehref(CFXJSE_Value* pValue,
-                     bool bSetting,
-                     XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_ui.h b/fxjs/xfa/cjx_ui.h
index 4fb1990..e986854 100644
--- a/fxjs/xfa/cjx_ui.h
+++ b/fxjs/xfa/cjx_ui.h
@@ -16,9 +16,6 @@
  public:
   explicit CJX_Ui(CXFA_Ui* node);
   ~CJX_Ui() override;
-
-  JSE_PROP(use);
-  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_UI_H_
diff --git a/fxjs/xfa/cjx_update.cpp b/fxjs/xfa/cjx_update.cpp
index 7ab8b7c..7ba70a4 100644
--- a/fxjs/xfa/cjx_update.cpp
+++ b/fxjs/xfa/cjx_update.cpp
@@ -11,15 +11,3 @@
 CJX_Update::CJX_Update(CXFA_Update* node) : CJX_TextNode(node) {}
 
 CJX_Update::~CJX_Update() = default;
-
-void CJX_Update::use(CFXJSE_Value* pValue,
-                     bool bSetting,
-                     XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Update::usehref(CFXJSE_Value* pValue,
-                         bool bSetting,
-                         XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_update.h b/fxjs/xfa/cjx_update.h
index 09c6812..d5e5fb1 100644
--- a/fxjs/xfa/cjx_update.h
+++ b/fxjs/xfa/cjx_update.h
@@ -16,9 +16,6 @@
  public:
   explicit CJX_Update(CXFA_Update* node);
   ~CJX_Update() override;
-
-  JSE_PROP(use);
-  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_UPDATE_H_
diff --git a/fxjs/xfa/cjx_uri.cpp b/fxjs/xfa/cjx_uri.cpp
index cba86ee..a7ca706 100644
--- a/fxjs/xfa/cjx_uri.cpp
+++ b/fxjs/xfa/cjx_uri.cpp
@@ -11,15 +11,3 @@
 CJX_Uri::CJX_Uri(CXFA_Uri* node) : CJX_TextNode(node) {}
 
 CJX_Uri::~CJX_Uri() = default;
-
-void CJX_Uri::use(CFXJSE_Value* pValue,
-                  bool bSetting,
-                  XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Uri::usehref(CFXJSE_Value* pValue,
-                      bool bSetting,
-                      XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_uri.h b/fxjs/xfa/cjx_uri.h
index 062dcf0..a53fc82 100644
--- a/fxjs/xfa/cjx_uri.h
+++ b/fxjs/xfa/cjx_uri.h
@@ -16,9 +16,6 @@
  public:
   explicit CJX_Uri(CXFA_Uri* node);
   ~CJX_Uri() override;
-
-  JSE_PROP(use);
-  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_URI_H_
diff --git a/fxjs/xfa/cjx_user.cpp b/fxjs/xfa/cjx_user.cpp
index 5e3186a..20e0085 100644
--- a/fxjs/xfa/cjx_user.cpp
+++ b/fxjs/xfa/cjx_user.cpp
@@ -11,15 +11,3 @@
 CJX_User::CJX_User(CXFA_User* node) : CJX_TextNode(node) {}
 
 CJX_User::~CJX_User() = default;
-
-void CJX_User::use(CFXJSE_Value* pValue,
-                   bool bSetting,
-                   XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_User::usehref(CFXJSE_Value* pValue,
-                       bool bSetting,
-                       XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_user.h b/fxjs/xfa/cjx_user.h
index b378960..7a727f1 100644
--- a/fxjs/xfa/cjx_user.h
+++ b/fxjs/xfa/cjx_user.h
@@ -16,9 +16,6 @@
  public:
   explicit CJX_User(CXFA_User* node);
   ~CJX_User() override;
-
-  JSE_PROP(use);
-  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_USER_H_
diff --git a/fxjs/xfa/cjx_validate.cpp b/fxjs/xfa/cjx_validate.cpp
index 400996c..b66969e 100644
--- a/fxjs/xfa/cjx_validate.cpp
+++ b/fxjs/xfa/cjx_validate.cpp
@@ -11,33 +11,3 @@
 CJX_Validate::CJX_Validate(CXFA_Validate* node) : CJX_Node(node) {}
 
 CJX_Validate::~CJX_Validate() = default;
-
-void CJX_Validate::use(CFXJSE_Value* pValue,
-                       bool bSetting,
-                       XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Validate::scriptTest(CFXJSE_Value* pValue,
-                              bool bSetting,
-                              XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Validate::nullTest(CFXJSE_Value* pValue,
-                            bool bSetting,
-                            XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Validate::usehref(CFXJSE_Value* pValue,
-                           bool bSetting,
-                           XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Validate::formatTest(CFXJSE_Value* pValue,
-                              bool bSetting,
-                              XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_validate.h b/fxjs/xfa/cjx_validate.h
index ea3d45c..2130f29 100644
--- a/fxjs/xfa/cjx_validate.h
+++ b/fxjs/xfa/cjx_validate.h
@@ -16,12 +16,6 @@
  public:
   explicit CJX_Validate(CXFA_Validate* node);
   ~CJX_Validate() override;
-
-  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.cpp b/fxjs/xfa/cjx_value.cpp
index 5fdd96c..e2ccc29 100644
--- a/fxjs/xfa/cjx_value.cpp
+++ b/fxjs/xfa/cjx_value.cpp
@@ -12,24 +12,6 @@
 
 CJX_Value::~CJX_Value() = default;
 
-void CJX_Value::use(CFXJSE_Value* pValue,
-                    bool bSetting,
-                    XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Value::relevant(CFXJSE_Value* pValue,
-                         bool bSetting,
-                         XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Value::usehref(CFXJSE_Value* pValue,
-                        bool bSetting,
-                        XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
 void CJX_Value::override(CFXJSE_Value* pValue,
                          bool bSetting,
                          XFA_Attribute eAttribute) {
diff --git a/fxjs/xfa/cjx_value.h b/fxjs/xfa/cjx_value.h
index 78ad2ed..68f9434 100644
--- a/fxjs/xfa/cjx_value.h
+++ b/fxjs/xfa/cjx_value.h
@@ -18,9 +18,6 @@
   ~CJX_Value() override;
 
   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.cpp b/fxjs/xfa/cjx_variables.cpp
index 6f3f631..4c7f7de 100644
--- a/fxjs/xfa/cjx_variables.cpp
+++ b/fxjs/xfa/cjx_variables.cpp
@@ -11,15 +11,3 @@
 CJX_Variables::CJX_Variables(CXFA_Variables* node) : CJX_Container(node) {}
 
 CJX_Variables::~CJX_Variables() = default;
-
-void CJX_Variables::use(CFXJSE_Value* pValue,
-                        bool bSetting,
-                        XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Variables::usehref(CFXJSE_Value* pValue,
-                            bool bSetting,
-                            XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_variables.h b/fxjs/xfa/cjx_variables.h
index c12e3ae..97df623 100644
--- a/fxjs/xfa/cjx_variables.h
+++ b/fxjs/xfa/cjx_variables.h
@@ -16,9 +16,6 @@
  public:
   explicit CJX_Variables(CXFA_Variables* node);
   ~CJX_Variables() override;
-
-  JSE_PROP(use);
-  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_VARIABLES_H_
diff --git a/fxjs/xfa/cjx_wsdladdress.cpp b/fxjs/xfa/cjx_wsdladdress.cpp
index 25f8b18..85df25b 100644
--- a/fxjs/xfa/cjx_wsdladdress.cpp
+++ b/fxjs/xfa/cjx_wsdladdress.cpp
@@ -11,15 +11,3 @@
 CJX_WsdlAddress::CJX_WsdlAddress(CXFA_WsdlAddress* node) : CJX_TextNode(node) {}
 
 CJX_WsdlAddress::~CJX_WsdlAddress() = default;
-
-void CJX_WsdlAddress::use(CFXJSE_Value* pValue,
-                          bool bSetting,
-                          XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_WsdlAddress::usehref(CFXJSE_Value* pValue,
-                              bool bSetting,
-                              XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_wsdladdress.h b/fxjs/xfa/cjx_wsdladdress.h
index 5b6cda0..4c15b84 100644
--- a/fxjs/xfa/cjx_wsdladdress.h
+++ b/fxjs/xfa/cjx_wsdladdress.h
@@ -16,9 +16,6 @@
  public:
   explicit CJX_WsdlAddress(CXFA_WsdlAddress* node);
   ~CJX_WsdlAddress() override;
-
-  JSE_PROP(use);
-  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_WSDLADDRESS_H_
diff --git a/fxjs/xfa/cjx_wsdlconnection.cpp b/fxjs/xfa/cjx_wsdlconnection.cpp
index 9b63dc3..33c746a 100644
--- a/fxjs/xfa/cjx_wsdlconnection.cpp
+++ b/fxjs/xfa/cjx_wsdlconnection.cpp
@@ -31,15 +31,3 @@
 
   return CJS_Result::Success(runtime->NewBoolean(false));
 }
-
-void CJX_WsdlConnection::dataDescription(CFXJSE_Value* pValue,
-                                         bool bSetting,
-                                         XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_WsdlConnection::execute(CFXJSE_Value* pValue,
-                                 bool bSetting,
-                                 XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_wsdlconnection.h b/fxjs/xfa/cjx_wsdlconnection.h
index f5dc51b..25df1ac 100644
--- a/fxjs/xfa/cjx_wsdlconnection.h
+++ b/fxjs/xfa/cjx_wsdlconnection.h
@@ -19,9 +19,6 @@
 
   JSE_METHOD(execute, CJX_WsdlConnection);
 
-  JSE_PROP(dataDescription);
-  JSE_PROP(execute);
-
  private:
   static const CJX_MethodSpec MethodSpecs[];
 };
diff --git a/fxjs/xfa/cjx_xfa.cpp b/fxjs/xfa/cjx_xfa.cpp
index d67c1b9..316f0c9 100644
--- a/fxjs/xfa/cjx_xfa.cpp
+++ b/fxjs/xfa/cjx_xfa.cpp
@@ -25,15 +25,3 @@
   ASSERT(pThis);
   pValue->Assign(GetDocument()->GetScriptContext()->GetJSValueFromMap(pThis));
 }
-
-void CJX_Xfa::timeStamp(CFXJSE_Value* pValue,
-                        bool bSetting,
-                        XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Xfa::uuid(CFXJSE_Value* pValue,
-                   bool bSetting,
-                   XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_xfa.h b/fxjs/xfa/cjx_xfa.h
index 39ee84f..4565195 100644
--- a/fxjs/xfa/cjx_xfa.h
+++ b/fxjs/xfa/cjx_xfa.h
@@ -18,8 +18,6 @@
   ~CJX_Xfa() override;
 
   JSE_PROP(thisValue); /* this */
-  JSE_PROP(timeStamp);
-  JSE_PROP(uuid);
 };
 
 #endif  // FXJS_XFA_CJX_XFA_H_
diff --git a/fxjs/xfa/cjx_xmlconnection.cpp b/fxjs/xfa/cjx_xmlconnection.cpp
index 5620560..0af4c11 100644
--- a/fxjs/xfa/cjx_xmlconnection.cpp
+++ b/fxjs/xfa/cjx_xmlconnection.cpp
@@ -12,9 +12,3 @@
     : CJX_Node(node) {}
 
 CJX_XmlConnection::~CJX_XmlConnection() = default;
-
-void CJX_XmlConnection::dataDescription(CFXJSE_Value* pValue,
-                                        bool bSetting,
-                                        XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_xmlconnection.h b/fxjs/xfa/cjx_xmlconnection.h
index 6ec2b41..52f1c8b 100644
--- a/fxjs/xfa/cjx_xmlconnection.h
+++ b/fxjs/xfa/cjx_xmlconnection.h
@@ -16,8 +16,6 @@
  public:
   explicit CJX_XmlConnection(CXFA_XmlConnection* node);
   ~CJX_XmlConnection() override;
-
-  JSE_PROP(dataDescription);
 };
 
 #endif  // FXJS_XFA_CJX_XMLCONNECTION_H_
diff --git a/fxjs/xfa/cjx_xsdconnection.cpp b/fxjs/xfa/cjx_xsdconnection.cpp
index 6e16f63..3d4c121 100644
--- a/fxjs/xfa/cjx_xsdconnection.cpp
+++ b/fxjs/xfa/cjx_xsdconnection.cpp
@@ -12,9 +12,3 @@
     : CJX_Node(node) {}
 
 CJX_XsdConnection::~CJX_XsdConnection() = default;
-
-void CJX_XsdConnection::dataDescription(CFXJSE_Value* pValue,
-                                        bool bSetting,
-                                        XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_xsdconnection.h b/fxjs/xfa/cjx_xsdconnection.h
index 4cfe519..e879806 100644
--- a/fxjs/xfa/cjx_xsdconnection.h
+++ b/fxjs/xfa/cjx_xsdconnection.h
@@ -16,8 +16,6 @@
  public:
   explicit CJX_XsdConnection(CXFA_XsdConnection* node);
   ~CJX_XsdConnection() override;
-
-  JSE_PROP(dataDescription);
 };
 
 #endif  // FXJS_XFA_CJX_XSDCONNECTION_H_
diff --git a/xfa/fxfa/parser/xfa_basic_data_element_script.cpp b/xfa/fxfa/parser/xfa_basic_data_element_script.cpp
index 6fd7dfe..add5b1b 100644
--- a/xfa/fxfa/parser/xfa_basic_data_element_script.cpp
+++ b/xfa/fxfa/parser/xfa_basic_data_element_script.cpp
@@ -504,12 +504,12 @@
     /* ui */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Ui::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Ui::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
 
@@ -580,7 +580,7 @@
     /* subformSet */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_SubformSet::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0x1ee2d24d,
@@ -590,17 +590,17 @@
           XFA_ScriptType::Basic)},
     {ATTR(0x8c99377e,
           "relation",
-          &CJX_SubformSet::relation,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Relation,
           XFA_ScriptType::Basic)},
     {ATTR(0x8e1c2921,
           "relevant",
-          &CJX_SubformSet::relevant,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Relevant,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_SubformSet::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
 
@@ -1003,12 +1003,12 @@
     /* uri */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Uri::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Uri::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
     {ATTR(0xbe52dfbf,
@@ -1074,12 +1074,12 @@
           XFA_ScriptType::Object)},
     {ATTR(0x4fdc3454,
           "timeStamp",
-          &CJX_Xfa::timeStamp,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::TimeStamp,
           XFA_ScriptType::Basic)},
     {ATTR(0xb598a1f7,
           "uuid",
-          &CJX_Xfa::uuid,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Uuid,
           XFA_ScriptType::Basic)},
 
@@ -1691,7 +1691,7 @@
     /* subjectDNs */
     {ATTR(0x2f16a382,
           "type",
-          &CJX_SubjectDNs::type,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Type,
           XFA_ScriptType::Basic)},
 
@@ -1717,7 +1717,7 @@
     /* wsdlConnection */
     {ATTR(0x2b5df51e,
           "dataDescription",
-          &CJX_WsdlConnection::dataDescription,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::DataDescription,
           XFA_ScriptType::Basic)},
 
@@ -1855,7 +1855,7 @@
           XFA_ScriptType::Basic)},
     {ATTR(0x31b19c1,
           "name",
-          &CJX_Area::name,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Name,
           XFA_ScriptType::Basic)},
     {ATTR(0xc0811ed,
@@ -1939,12 +1939,12 @@
     /* text */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Text::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0x8af2e657,
           "maxChars",
-          &CJX_Text::maxChars,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::MaxChars,
           XFA_ScriptType::Basic)},
     {ATTR(0xa52682bd,
@@ -1954,7 +1954,7 @@
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Text::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
     {ATTR(0xd6e27f1d,
@@ -1966,7 +1966,7 @@
     /* time */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Time::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0xa52682bd,
@@ -1976,7 +1976,7 @@
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Time::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
     {ATTR(0xd6e27f1d,
@@ -2555,12 +2555,12 @@
     /* wsdlAddress */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_WsdlAddress::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_WsdlAddress::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
 
@@ -2625,17 +2625,17 @@
     /* stipple */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Stipple::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0x1ec8ab2c,
           "rate",
-          &CJX_Stipple::rate,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Rate,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Stipple::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
 
@@ -2830,12 +2830,12 @@
     /* toolTip */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_ToolTip::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_ToolTip::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
 
@@ -3012,22 +3012,22 @@
     /* timeStamp */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_TimeStamp::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0x2f16a382,
           "type",
-          &CJX_TimeStamp::type,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Type,
           XFA_ScriptType::Basic)},
     {ATTR(0x7f6fd3d7,
           "server",
-          &CJX_TimeStamp::server,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Server,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_TimeStamp::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
 
@@ -3090,28 +3090,44 @@
           XFA_ScriptType::Basic)},
 
     /* subform */
-    {ATTR(0x68, "h", &CJX_Subform::h, XFA_Attribute::H, XFA_ScriptType::Basic)},
-    {ATTR(0x77, "w", &CJX_Subform::w, XFA_Attribute::W, XFA_ScriptType::Basic)},
-    {ATTR(0x78, "x", &CJX_Subform::x, XFA_Attribute::X, XFA_ScriptType::Basic)},
-    {ATTR(0x79, "y", &CJX_Subform::y, XFA_Attribute::Y, XFA_ScriptType::Basic)},
+    {ATTR(0x68,
+          "h",
+          &CJX_Object::ScriptAttributeString,
+          XFA_Attribute::H,
+          XFA_ScriptType::Basic)},
+    {ATTR(0x77,
+          "w",
+          &CJX_Object::ScriptAttributeString,
+          XFA_Attribute::W,
+          XFA_ScriptType::Basic)},
+    {ATTR(0x78,
+          "x",
+          &CJX_Object::ScriptAttributeString,
+          XFA_Attribute::X,
+          XFA_ScriptType::Basic)},
+    {ATTR(0x79,
+          "y",
+          &CJX_Object::ScriptAttributeString,
+          XFA_Attribute::Y,
+          XFA_ScriptType::Basic)},
     {ATTR(0x2282c73,
           "hAlign",
-          &CJX_Subform::hAlign,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::HAlign,
           XFA_ScriptType::Basic)},
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Subform::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0x1414d431,
           "allowMacro",
-          &CJX_Subform::allowMacro,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::AllowMacro,
           XFA_ScriptType::Basic)},
     {ATTR(0x1517dfa1,
           "columnWidths",
-          &CJX_Subform::columnWidths,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::ColumnWidths,
           XFA_ScriptType::Basic)},
     {ATTR(0x1abbd7e0,
@@ -3137,7 +3153,7 @@
           XFA_ScriptType::Basic)},
     {ATTR(0x570ce835,
           "presence",
-          &CJX_Subform::presence,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Presence,
           XFA_ScriptType::Basic)},
     {ATTR(0x5a3b375d,
@@ -3147,27 +3163,27 @@
           XFA_ScriptType::Basic)},
     {ATTR(0x7a7cc341,
           "vAlign",
-          &CJX_Subform::vAlign,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::VAlign,
           XFA_ScriptType::Basic)},
     {ATTR(0x7c2ff6ae,
           "maxH",
-          &CJX_Subform::maxH,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::MaxH,
           XFA_ScriptType::Basic)},
     {ATTR(0x7c2ff6bd,
           "maxW",
-          &CJX_Subform::maxW,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::MaxW,
           XFA_ScriptType::Basic)},
     {ATTR(0x7d02356c,
           "minH",
-          &CJX_Subform::minH,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::MinH,
           XFA_ScriptType::Basic)},
     {ATTR(0x7d02357b,
           "minW",
-          &CJX_Subform::minW,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::MinW,
           XFA_ScriptType::Basic)},
     {ATTR(0x7e7e845e,
@@ -3177,7 +3193,7 @@
           XFA_ScriptType::Basic)},
     {ATTR(0x8e1c2921,
           "relevant",
-          &CJX_Subform::relevant,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Relevant,
           XFA_ScriptType::Basic)},
     {ATTR(0x9cc17d75,
@@ -3193,12 +3209,12 @@
           XFA_ScriptType::Object)},
     {ATTR(0xac06e2b0,
           "colSpan",
-          &CJX_Subform::colSpan,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::ColSpan,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Subform::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc8fa350,
@@ -3208,7 +3224,7 @@
           XFA_ScriptType::Basic)},
     {ATTR(0xc2bd40fd,
           "anchorType",
-          &CJX_Subform::anchorType,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::AnchorType,
           XFA_ScriptType::Basic)},
     {ATTR(0xcabfa3d0,
@@ -3218,12 +3234,12 @@
           XFA_ScriptType::Basic)},
     {ATTR(0xe4c3a5e5,
           "restoreState",
-          &CJX_Subform::restoreState,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::RestoreState,
           XFA_ScriptType::Basic)},
     {ATTR(0xeda9017a,
           "scope",
-          &CJX_Subform::scope,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Scope,
           XFA_ScriptType::Basic)},
     {ATTR(0xf65e34be,
@@ -3580,12 +3596,12 @@
     /* traversal */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Traversal::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Traversal::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
 
@@ -3789,22 +3805,22 @@
     /* validate */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Validate::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0x5b707a35,
           "scriptTest",
-          &CJX_Validate::scriptTest,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::ScriptTest,
           XFA_ScriptType::Basic)},
     {ATTR(0x6b6ddcfb,
           "nullTest",
-          &CJX_Validate::nullTest,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::NullTest,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Validate::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
     {ATTR(0xbe52dfbf,
@@ -3814,7 +3830,7 @@
           XFA_ScriptType::Basic)},
     {ATTR(0xe64b1129,
           "formatTest",
-          &CJX_Validate::formatTest,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::FormatTest,
           XFA_ScriptType::Basic)},
     {ATTR(0xf6b47749,
@@ -3952,12 +3968,12 @@
     /* update */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Update::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Update::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
 
@@ -4017,29 +4033,29 @@
     /* xsdConnection */
     {ATTR(0x2b5df51e,
           "dataDescription",
-          &CJX_XsdConnection::dataDescription,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::DataDescription,
           XFA_ScriptType::Basic)},
 
     /* traverse */
     {ATTR(0xbb8df5d,
           "ref",
-          &CJX_Traverse::ref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Ref,
           XFA_ScriptType::Basic)},
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Traverse::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0x226ca8f1,
           "operation",
-          &CJX_Traverse::operation,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Operation,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Traverse::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
 
@@ -4706,32 +4722,32 @@
     /* textEdit */
     {ATTR(0x5ce6195,
           "vScrollPolicy",
-          &CJX_TextEdit::vScrollPolicy,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::VScrollPolicy,
           XFA_ScriptType::Basic)},
     {ATTR(0xc0811ed,
           "use",
-          &CJX_TextEdit::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0x1ef3a64a,
           "allowRichText",
-          &CJX_TextEdit::allowRichText,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::AllowRichText,
           XFA_ScriptType::Basic)},
     {ATTR(0x5a32e493,
           "multiLine",
-          &CJX_TextEdit::multiLine,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::MultiLine,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_TextEdit::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
     {ATTR(0xe6f99487,
           "hScrollPolicy",
-          &CJX_TextEdit::hScrollPolicy,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::HScrollPolicy,
           XFA_ScriptType::Basic)},
 
@@ -4820,7 +4836,7 @@
     /* xmlConnection */
     {ATTR(0x2b5df51e,
           "dataDescription",
-          &CJX_XmlConnection::dataDescription,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::DataDescription,
           XFA_ScriptType::Basic)},
 
@@ -4953,12 +4969,12 @@
     /* user */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_User::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_User::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
 
@@ -5602,17 +5618,17 @@
     /* value */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Value::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0x8e1c2921,
           "relevant",
-          &CJX_Value::relevant,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Relevant,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Value::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
     {ATTR(0xea7090a0,
@@ -5842,37 +5858,37 @@
     /* submit */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Submit::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0x28dee6e9,
           "format",
-          &CJX_Submit::format,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Format,
           XFA_ScriptType::Basic)},
     {ATTR(0x824f21b7,
           "embedPDF",
-          &CJX_Submit::embedPDF,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::EmbedPDF,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Submit::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
     {ATTR(0xc8da4da7,
           "target",
-          &CJX_Submit::target,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Target,
           XFA_ScriptType::Basic)},
     {ATTR(0xdc75676c,
           "textEncoding",
-          &CJX_Submit::textEncoding,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::TextEncoding,
           XFA_ScriptType::Basic)},
     {ATTR(0xf889e747,
           "xdpContent",
-          &CJX_Submit::xdpContent,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::XdpContent,
           XFA_ScriptType::Basic)},
 
@@ -5992,7 +6008,7 @@
     /* subjectDN */
     {ATTR(0x4156ee3f,
           "delimiter",
-          &CJX_SubjectDN::delimiter,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Delimiter,
           XFA_ScriptType::Basic)},
 
@@ -6040,12 +6056,12 @@
     /* variables */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Variables::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Variables::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
 
@@ -6386,7 +6402,7 @@
     /* tree */
     {ATTR(0x31b19c1,
           "name",
-          &CJX_Tree::name,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Name,
           XFA_ScriptType::Basic)},
     {ATTR(0x9f9d0f9,