Remove redundant ScriptAttributeString() wrappers, part 2

Change-Id: I9f25f09b41e5608f8b714f585a4f1b8fe04ea298
Reviewed-on: https://pdfium-review.googlesource.com/c/46530
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/fxjs/xfa/cjx_boolean.cpp b/fxjs/xfa/cjx_boolean.cpp
index 288b61e..c7650d1 100644
--- a/fxjs/xfa/cjx_boolean.cpp
+++ b/fxjs/xfa/cjx_boolean.cpp
@@ -13,12 +13,6 @@
 
 CJX_Boolean::~CJX_Boolean() = default;
 
-void CJX_Boolean::use(CFXJSE_Value* pValue,
-                      bool bSetting,
-                      XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
 void CJX_Boolean::defaultValue(CFXJSE_Value* pValue,
                                bool bSetting,
                                XFA_Attribute eAttribute) {
@@ -41,12 +35,6 @@
   SetContent(wsNewValue, wsFormatValue, true, true, true);
 }
 
-void CJX_Boolean::usehref(CFXJSE_Value* pValue,
-                          bool bSetting,
-                          XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
 void CJX_Boolean::value(CFXJSE_Value* pValue,
                         bool bSetting,
                         XFA_Attribute eAttribute) {
diff --git a/fxjs/xfa/cjx_boolean.h b/fxjs/xfa/cjx_boolean.h
index 380351d6..9d35741 100644
--- a/fxjs/xfa/cjx_boolean.h
+++ b/fxjs/xfa/cjx_boolean.h
@@ -17,9 +17,7 @@
   explicit CJX_Boolean(CXFA_Boolean* node);
   ~CJX_Boolean() override;
 
-  JSE_PROP(use);
   JSE_PROP(defaultValue); /* {default} */
-  JSE_PROP(usehref);
   JSE_PROP(value);
 };
 
diff --git a/fxjs/xfa/cjx_datavalue.cpp b/fxjs/xfa/cjx_datavalue.cpp
index e46ab89..7d55fa9 100644
--- a/fxjs/xfa/cjx_datavalue.cpp
+++ b/fxjs/xfa/cjx_datavalue.cpp
@@ -12,18 +12,6 @@
 
 CJX_DataValue::~CJX_DataValue() = default;
 
-void CJX_DataValue::contentType(CFXJSE_Value* pValue,
-                                bool bSetting,
-                                XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_DataValue::contains(CFXJSE_Value* pValue,
-                             bool bSetting,
-                             XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
 void CJX_DataValue::defaultValue(CFXJSE_Value* pValue,
                                  bool bSetting,
                                  XFA_Attribute eAttribute) {
diff --git a/fxjs/xfa/cjx_datavalue.h b/fxjs/xfa/cjx_datavalue.h
index 6368997..8b307f9 100644
--- a/fxjs/xfa/cjx_datavalue.h
+++ b/fxjs/xfa/cjx_datavalue.h
@@ -18,8 +18,6 @@
   ~CJX_DataValue() override;
 
   JSE_PROP(defaultValue); /* {default} */
-  JSE_PROP(contains);
-  JSE_PROP(contentType);
   JSE_PROP(isNull);
   JSE_PROP(value);
 };
diff --git a/fxjs/xfa/cjx_date.cpp b/fxjs/xfa/cjx_date.cpp
index 1ee8b60..f55943e 100644
--- a/fxjs/xfa/cjx_date.cpp
+++ b/fxjs/xfa/cjx_date.cpp
@@ -12,24 +12,12 @@
 
 CJX_Date::~CJX_Date() = default;
 
-void CJX_Date::use(CFXJSE_Value* pValue,
-                   bool bSetting,
-                   XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
 void CJX_Date::defaultValue(CFXJSE_Value* pValue,
                             bool bSetting,
                             XFA_Attribute eAttribute) {
   ScriptSomDefaultValue(pValue, bSetting, eAttribute);
 }
 
-void CJX_Date::usehref(CFXJSE_Value* pValue,
-                       bool bSetting,
-                       XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
 void CJX_Date::value(CFXJSE_Value* pValue,
                      bool bSetting,
                      XFA_Attribute eAttribute) {
diff --git a/fxjs/xfa/cjx_date.h b/fxjs/xfa/cjx_date.h
index 95c188c..4466a94 100644
--- a/fxjs/xfa/cjx_date.h
+++ b/fxjs/xfa/cjx_date.h
@@ -18,8 +18,6 @@
   ~CJX_Date() override;
 
   JSE_PROP(defaultValue); /* {default} */
-  JSE_PROP(use);
-  JSE_PROP(usehref);
   JSE_PROP(value);
 };
 
diff --git a/fxjs/xfa/cjx_datetime.cpp b/fxjs/xfa/cjx_datetime.cpp
index 0d0434a..63f097c 100644
--- a/fxjs/xfa/cjx_datetime.cpp
+++ b/fxjs/xfa/cjx_datetime.cpp
@@ -12,24 +12,12 @@
 
 CJX_DateTime::~CJX_DateTime() = default;
 
-void CJX_DateTime::use(CFXJSE_Value* pValue,
-                       bool bSetting,
-                       XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
 void CJX_DateTime::defaultValue(CFXJSE_Value* pValue,
                                 bool bSetting,
                                 XFA_Attribute eAttribute) {
   ScriptSomDefaultValue(pValue, bSetting, eAttribute);
 }
 
-void CJX_DateTime::usehref(CFXJSE_Value* pValue,
-                           bool bSetting,
-                           XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
 void CJX_DateTime::value(CFXJSE_Value* pValue,
                          bool bSetting,
                          XFA_Attribute eAttribute) {
diff --git a/fxjs/xfa/cjx_datetime.h b/fxjs/xfa/cjx_datetime.h
index 2b62a3b..382168a 100644
--- a/fxjs/xfa/cjx_datetime.h
+++ b/fxjs/xfa/cjx_datetime.h
@@ -18,8 +18,6 @@
   ~CJX_DateTime() override;
 
   JSE_PROP(defaultValue); /* {default} */
-  JSE_PROP(use);
-  JSE_PROP(usehref);
   JSE_PROP(value);
 };
 
diff --git a/fxjs/xfa/cjx_datetimeedit.cpp b/fxjs/xfa/cjx_datetimeedit.cpp
index 90e246a..b6affed 100644
--- a/fxjs/xfa/cjx_datetimeedit.cpp
+++ b/fxjs/xfa/cjx_datetimeedit.cpp
@@ -11,21 +11,3 @@
 CJX_DateTimeEdit::CJX_DateTimeEdit(CXFA_DateTimeEdit* node) : CJX_Node(node) {}
 
 CJX_DateTimeEdit::~CJX_DateTimeEdit() = default;
-
-void CJX_DateTimeEdit::use(CFXJSE_Value* pValue,
-                           bool bSetting,
-                           XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_DateTimeEdit::usehref(CFXJSE_Value* pValue,
-                               bool bSetting,
-                               XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_DateTimeEdit::hScrollPolicy(CFXJSE_Value* pValue,
-                                     bool bSetting,
-                                     XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_datetimeedit.h b/fxjs/xfa/cjx_datetimeedit.h
index 449df36..daebdbf 100644
--- a/fxjs/xfa/cjx_datetimeedit.h
+++ b/fxjs/xfa/cjx_datetimeedit.h
@@ -16,10 +16,6 @@
  public:
   explicit CJX_DateTimeEdit(CXFA_DateTimeEdit* node);
   ~CJX_DateTimeEdit() override;
-
-  JSE_PROP(hScrollPolicy);
-  JSE_PROP(use);
-  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_DATETIMEEDIT_H_
diff --git a/fxjs/xfa/cjx_decimal.cpp b/fxjs/xfa/cjx_decimal.cpp
index e93ccbf..14c77f1 100644
--- a/fxjs/xfa/cjx_decimal.cpp
+++ b/fxjs/xfa/cjx_decimal.cpp
@@ -12,38 +12,14 @@
 
 CJX_Decimal::~CJX_Decimal() = default;
 
-void CJX_Decimal::use(CFXJSE_Value* pValue,
-                      bool bSetting,
-                      XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Decimal::fracDigits(CFXJSE_Value* pValue,
-                             bool bSetting,
-                             XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
 void CJX_Decimal::defaultValue(CFXJSE_Value* pValue,
                                bool bSetting,
                                XFA_Attribute eAttribute) {
   ScriptSomDefaultValue(pValue, bSetting, eAttribute);
 }
 
-void CJX_Decimal::usehref(CFXJSE_Value* pValue,
-                          bool bSetting,
-                          XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
 void CJX_Decimal::value(CFXJSE_Value* pValue,
                         bool bSetting,
                         XFA_Attribute eAttribute) {
   ScriptSomDefaultValue(pValue, bSetting, eAttribute);
 }
-
-void CJX_Decimal::leadDigits(CFXJSE_Value* pValue,
-                             bool bSetting,
-                             XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_decimal.h b/fxjs/xfa/cjx_decimal.h
index 7511040..fd47a8a 100644
--- a/fxjs/xfa/cjx_decimal.h
+++ b/fxjs/xfa/cjx_decimal.h
@@ -18,10 +18,6 @@
   ~CJX_Decimal() override;
 
   JSE_PROP(defaultValue); /* {default} */
-  JSE_PROP(fracDigits);
-  JSE_PROP(leadDigits);
-  JSE_PROP(use);
-  JSE_PROP(usehref);
   JSE_PROP(value);
 };
 
diff --git a/fxjs/xfa/cjx_defaultui.cpp b/fxjs/xfa/cjx_defaultui.cpp
index 057f24d..0073037 100644
--- a/fxjs/xfa/cjx_defaultui.cpp
+++ b/fxjs/xfa/cjx_defaultui.cpp
@@ -11,15 +11,3 @@
 CJX_DefaultUi::CJX_DefaultUi(CXFA_DefaultUi* node) : CJX_Node(node) {}
 
 CJX_DefaultUi::~CJX_DefaultUi() = default;
-
-void CJX_DefaultUi::use(CFXJSE_Value* pValue,
-                        bool bSetting,
-                        XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_DefaultUi::usehref(CFXJSE_Value* pValue,
-                            bool bSetting,
-                            XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_defaultui.h b/fxjs/xfa/cjx_defaultui.h
index 5e70109..320d09b 100644
--- a/fxjs/xfa/cjx_defaultui.h
+++ b/fxjs/xfa/cjx_defaultui.h
@@ -16,9 +16,6 @@
  public:
   explicit CJX_DefaultUi(CXFA_DefaultUi* node);
   ~CJX_DefaultUi() override;
-
-  JSE_PROP(use);
-  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_DEFAULTUI_H_
diff --git a/fxjs/xfa/cjx_delete.cpp b/fxjs/xfa/cjx_delete.cpp
index fec6d78..bfecf6c 100644
--- a/fxjs/xfa/cjx_delete.cpp
+++ b/fxjs/xfa/cjx_delete.cpp
@@ -11,15 +11,3 @@
 CJX_Delete::CJX_Delete(CXFA_Delete* node) : CJX_TextNode(node) {}
 
 CJX_Delete::~CJX_Delete() = default;
-
-void CJX_Delete::use(CFXJSE_Value* pValue,
-                     bool bSetting,
-                     XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Delete::usehref(CFXJSE_Value* pValue,
-                         bool bSetting,
-                         XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_delete.h b/fxjs/xfa/cjx_delete.h
index c35cc14..e951ac7 100644
--- a/fxjs/xfa/cjx_delete.h
+++ b/fxjs/xfa/cjx_delete.h
@@ -16,9 +16,6 @@
  public:
   explicit CJX_Delete(CXFA_Delete* node);
   ~CJX_Delete() override;
-
-  JSE_PROP(use);
-  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_DELETE_H_
diff --git a/fxjs/xfa/cjx_desc.cpp b/fxjs/xfa/cjx_desc.cpp
index b38bc28..1c84c68 100644
--- a/fxjs/xfa/cjx_desc.cpp
+++ b/fxjs/xfa/cjx_desc.cpp
@@ -28,15 +28,3 @@
 
   return CJS_Result::Success(runtime->NewString(""));
 }
-
-void CJX_Desc::use(CFXJSE_Value* pValue,
-                   bool bSetting,
-                   XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Desc::usehref(CFXJSE_Value* pValue,
-                       bool bSetting,
-                       XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_desc.h b/fxjs/xfa/cjx_desc.h
index 99cb9ba..29572b3 100644
--- a/fxjs/xfa/cjx_desc.h
+++ b/fxjs/xfa/cjx_desc.h
@@ -19,9 +19,6 @@
 
   JSE_METHOD(metadata, CJX_Desc);
 
-  JSE_PROP(use);
-  JSE_PROP(usehref);
-
  private:
   static const CJX_MethodSpec MethodSpecs[];
 };
diff --git a/fxjs/xfa/cjx_digestmethod.cpp b/fxjs/xfa/cjx_digestmethod.cpp
index 6de767d..5a32c6b 100644
--- a/fxjs/xfa/cjx_digestmethod.cpp
+++ b/fxjs/xfa/cjx_digestmethod.cpp
@@ -11,15 +11,3 @@
 CJX_DigestMethod::CJX_DigestMethod(CXFA_DigestMethod* node) : CJX_Node(node) {}
 
 CJX_DigestMethod::~CJX_DigestMethod() = default;
-
-void CJX_DigestMethod::use(CFXJSE_Value* pValue,
-                           bool bSetting,
-                           XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_DigestMethod::usehref(CFXJSE_Value* pValue,
-                               bool bSetting,
-                               XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_digestmethod.h b/fxjs/xfa/cjx_digestmethod.h
index beb0cd2..0d06349 100644
--- a/fxjs/xfa/cjx_digestmethod.h
+++ b/fxjs/xfa/cjx_digestmethod.h
@@ -16,9 +16,6 @@
  public:
   explicit CJX_DigestMethod(CXFA_DigestMethod* node);
   ~CJX_DigestMethod() override;
-
-  JSE_PROP(use);
-  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_DIGESTMETHOD_H_
diff --git a/fxjs/xfa/cjx_digestmethods.cpp b/fxjs/xfa/cjx_digestmethods.cpp
index a63f453..1de951b 100644
--- a/fxjs/xfa/cjx_digestmethods.cpp
+++ b/fxjs/xfa/cjx_digestmethods.cpp
@@ -12,21 +12,3 @@
     : CJX_Node(node) {}
 
 CJX_DigestMethods::~CJX_DigestMethods() = default;
-
-void CJX_DigestMethods::use(CFXJSE_Value* pValue,
-                            bool bSetting,
-                            XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_DigestMethods::type(CFXJSE_Value* pValue,
-                             bool bSetting,
-                             XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_DigestMethods::usehref(CFXJSE_Value* pValue,
-                                bool bSetting,
-                                XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_digestmethods.h b/fxjs/xfa/cjx_digestmethods.h
index c011a3d..664cc89 100644
--- a/fxjs/xfa/cjx_digestmethods.h
+++ b/fxjs/xfa/cjx_digestmethods.h
@@ -16,10 +16,6 @@
  public:
   explicit CJX_DigestMethods(CXFA_DigestMethods* node);
   ~CJX_DigestMethods() override;
-
-  JSE_PROP(type);
-  JSE_PROP(use);
-  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_DIGESTMETHODS_H_
diff --git a/fxjs/xfa/cjx_draw.cpp b/fxjs/xfa/cjx_draw.cpp
index 9df7014..8b9a2c0 100644
--- a/fxjs/xfa/cjx_draw.cpp
+++ b/fxjs/xfa/cjx_draw.cpp
@@ -12,91 +12,6 @@
 CJX_Draw::CJX_Draw(CXFA_Draw* node) : CJX_Container(node) {}
 
 CJX_Draw::~CJX_Draw() = default;
-
-void CJX_Draw::h(CFXJSE_Value* pValue,
-                 bool bSetting,
-                 XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Draw::w(CFXJSE_Value* pValue,
-                 bool bSetting,
-                 XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Draw::x(CFXJSE_Value* pValue,
-                 bool bSetting,
-                 XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Draw::y(CFXJSE_Value* pValue,
-                 bool bSetting,
-                 XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Draw::hAlign(CFXJSE_Value* pValue,
-                      bool bSetting,
-                      XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Draw::use(CFXJSE_Value* pValue,
-                   bool bSetting,
-                   XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Draw::rotate(CFXJSE_Value* pValue,
-                      bool bSetting,
-                      XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Draw::presence(CFXJSE_Value* pValue,
-                        bool bSetting,
-                        XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Draw::vAlign(CFXJSE_Value* pValue,
-                      bool bSetting,
-                      XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Draw::maxH(CFXJSE_Value* pValue,
-                    bool bSetting,
-                    XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Draw::maxW(CFXJSE_Value* pValue,
-                    bool bSetting,
-                    XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Draw::minH(CFXJSE_Value* pValue,
-                    bool bSetting,
-                    XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Draw::minW(CFXJSE_Value* pValue,
-                    bool bSetting,
-                    XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Draw::relevant(CFXJSE_Value* pValue,
-                        bool bSetting,
-                        XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
 void CJX_Draw::rawValue(CFXJSE_Value* pValue,
                         bool bSetting,
                         XFA_Attribute eAttribute) {
@@ -126,27 +41,3 @@
   WideString wsNewValue = pValue->ToWideString();
   SetContent(wsNewValue, wsNewValue, true, true, true);
 }
-
-void CJX_Draw::colSpan(CFXJSE_Value* pValue,
-                       bool bSetting,
-                       XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Draw::usehref(CFXJSE_Value* pValue,
-                       bool bSetting,
-                       XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Draw::locale(CFXJSE_Value* pValue,
-                      bool bSetting,
-                      XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Draw::anchorType(CFXJSE_Value* pValue,
-                          bool bSetting,
-                          XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_draw.h b/fxjs/xfa/cjx_draw.h
index 4f53bef..0a02336 100644
--- a/fxjs/xfa/cjx_draw.h
+++ b/fxjs/xfa/cjx_draw.h
@@ -18,25 +18,7 @@
   ~CJX_Draw() override;
 
   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.cpp b/fxjs/xfa/cjx_edge.cpp
index 63fe2c2..c940b55 100644
--- a/fxjs/xfa/cjx_edge.cpp
+++ b/fxjs/xfa/cjx_edge.cpp
@@ -11,39 +11,3 @@
 CJX_Edge::CJX_Edge(CXFA_Edge* node) : CJX_Node(node) {}
 
 CJX_Edge::~CJX_Edge() = default;
-
-void CJX_Edge::cap(CFXJSE_Value* pValue,
-                   bool bSetting,
-                   XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Edge::use(CFXJSE_Value* pValue,
-                   bool bSetting,
-                   XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Edge::stroke(CFXJSE_Value* pValue,
-                      bool bSetting,
-                      XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Edge::presence(CFXJSE_Value* pValue,
-                        bool bSetting,
-                        XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Edge::thickness(CFXJSE_Value* pValue,
-                         bool bSetting,
-                         XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Edge::usehref(CFXJSE_Value* pValue,
-                       bool bSetting,
-                       XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_edge.h b/fxjs/xfa/cjx_edge.h
index ed3d7cc..04b40aa 100644
--- a/fxjs/xfa/cjx_edge.h
+++ b/fxjs/xfa/cjx_edge.h
@@ -16,13 +16,6 @@
  public:
   explicit CJX_Edge(CXFA_Edge* node);
   ~CJX_Edge() override;
-
-  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.cpp b/fxjs/xfa/cjx_encoding.cpp
index a83ab9a..f961be1 100644
--- a/fxjs/xfa/cjx_encoding.cpp
+++ b/fxjs/xfa/cjx_encoding.cpp
@@ -11,15 +11,3 @@
 CJX_Encoding::CJX_Encoding(CXFA_Encoding* node) : CJX_Node(node) {}
 
 CJX_Encoding::~CJX_Encoding() = default;
-
-void CJX_Encoding::use(CFXJSE_Value* pValue,
-                       bool bSetting,
-                       XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Encoding::usehref(CFXJSE_Value* pValue,
-                           bool bSetting,
-                           XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_encoding.h b/fxjs/xfa/cjx_encoding.h
index 4c02df5..9c8a3d5 100644
--- a/fxjs/xfa/cjx_encoding.h
+++ b/fxjs/xfa/cjx_encoding.h
@@ -16,9 +16,6 @@
  public:
   explicit CJX_Encoding(CXFA_Encoding* node);
   ~CJX_Encoding() override;
-
-  JSE_PROP(use);
-  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_ENCODING_H_
diff --git a/fxjs/xfa/cjx_encodings.cpp b/fxjs/xfa/cjx_encodings.cpp
index b3004a5..ec08c0e 100644
--- a/fxjs/xfa/cjx_encodings.cpp
+++ b/fxjs/xfa/cjx_encodings.cpp
@@ -11,21 +11,3 @@
 CJX_Encodings::CJX_Encodings(CXFA_Encodings* node) : CJX_Node(node) {}
 
 CJX_Encodings::~CJX_Encodings() = default;
-
-void CJX_Encodings::use(CFXJSE_Value* pValue,
-                        bool bSetting,
-                        XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Encodings::type(CFXJSE_Value* pValue,
-                         bool bSetting,
-                         XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Encodings::usehref(CFXJSE_Value* pValue,
-                            bool bSetting,
-                            XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_encodings.h b/fxjs/xfa/cjx_encodings.h
index b1642f7..b5f9b67 100644
--- a/fxjs/xfa/cjx_encodings.h
+++ b/fxjs/xfa/cjx_encodings.h
@@ -16,10 +16,6 @@
  public:
   explicit CJX_Encodings(CXFA_Encodings* node);
   ~CJX_Encodings() override;
-
-  JSE_PROP(type);
-  JSE_PROP(use);
-  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_ENCODINGS_H_
diff --git a/xfa/fxfa/parser/xfa_basic_data_element_script.cpp b/xfa/fxfa/parser/xfa_basic_data_element_script.cpp
index 9f57363..7166ae0 100644
--- a/xfa/fxfa/parser/xfa_basic_data_element_script.cpp
+++ b/xfa/fxfa/parser/xfa_basic_data_element_script.cpp
@@ -1443,12 +1443,12 @@
     /* encoding */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Encoding::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Encoding::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
 
@@ -1489,12 +1489,12 @@
     /* defaultUi */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_DefaultUi::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_DefaultUi::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
 
@@ -2104,7 +2104,7 @@
     /* dateTime */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_DateTime::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0xa52682bd,
@@ -2114,7 +2114,7 @@
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_DateTime::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
     {ATTR(0xd6e27f1d,
@@ -2577,32 +2577,32 @@
     /* edge */
     {ATTR(0xa2e3514,
           "cap",
-          &CJX_Edge::cap,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Cap,
           XFA_ScriptType::Basic)},
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Edge::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0x5392ea58,
           "stroke",
-          &CJX_Edge::stroke,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Stroke,
           XFA_ScriptType::Basic)},
     {ATTR(0x570ce835,
           "presence",
-          &CJX_Edge::presence,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Presence,
           XFA_ScriptType::Basic)},
     {ATTR(0x94446dcc,
           "thickness",
-          &CJX_Edge::thickness,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Thickness,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Edge::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
 
@@ -2894,17 +2894,17 @@
     /* dateTimeEdit */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_DateTimeEdit::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_DateTimeEdit::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
     {ATTR(0xe6f99487,
           "hScrollPolicy",
-          &CJX_DateTimeEdit::hScrollPolicy,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::HScrollPolicy,
           XFA_ScriptType::Basic)},
 
@@ -3044,12 +3044,12 @@
     /* decimal */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Decimal::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0x4b8bc840,
           "fracDigits",
-          &CJX_Decimal::fracDigits,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::FracDigits,
           XFA_ScriptType::Basic)},
     {ATTR(0xa52682bd,
@@ -3059,7 +3059,7 @@
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Decimal::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
     {ATTR(0xd6e27f1d,
@@ -3069,7 +3069,7 @@
           XFA_ScriptType::Basic)},
     {ATTR(0xde7f92ba,
           "leadDigits",
-          &CJX_Decimal::leadDigits,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::LeadDigits,
           XFA_ScriptType::Basic)},
 
@@ -3445,7 +3445,7 @@
     /* boolean */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Boolean::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0xa52682bd,
@@ -3455,7 +3455,7 @@
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Boolean::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
     {ATTR(0xd6e27f1d,
@@ -3810,17 +3810,17 @@
     /* digestMethods */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_DigestMethods::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0x2f16a382,
           "type",
-          &CJX_DigestMethods::type,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Type,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_DigestMethods::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
 
@@ -4030,17 +4030,17 @@
     /* encodings */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Encodings::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0x2f16a382,
           "type",
-          &CJX_Encodings::type,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Type,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Encodings::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
 
@@ -4583,12 +4583,12 @@
     /* delete */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Delete::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Delete::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
 
@@ -4597,12 +4597,12 @@
     /* digestMethod */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_DigestMethod::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_DigestMethod::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
 
@@ -4751,12 +4751,12 @@
     /* dataValue */
     {ATTR(0x42fed1fd,
           "contentType",
-          &CJX_DataValue::contentType,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::ContentType,
           XFA_ScriptType::Basic)},
     {ATTR(0x8855805f,
           "contains",
-          &CJX_DataValue::contains,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Contains,
           XFA_ScriptType::Basic)},
     {ATTR(0xa52682bd,
@@ -5060,7 +5060,7 @@
     /* date */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Date::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0xa52682bd,
@@ -5070,7 +5070,7 @@
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Date::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
     {ATTR(0xd6e27f1d,
@@ -5082,12 +5082,12 @@
     /* desc */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Desc::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Desc::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
 
@@ -5119,58 +5119,74 @@
           XFA_ScriptType::Basic)},
 
     /* draw */
-    {ATTR(0x68, "h", &CJX_Draw::h, XFA_Attribute::H, XFA_ScriptType::Basic)},
-    {ATTR(0x77, "w", &CJX_Draw::w, XFA_Attribute::W, XFA_ScriptType::Basic)},
-    {ATTR(0x78, "x", &CJX_Draw::x, XFA_Attribute::X, XFA_ScriptType::Basic)},
-    {ATTR(0x79, "y", &CJX_Draw::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_Draw::hAlign,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::HAlign,
           XFA_ScriptType::Basic)},
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Draw::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0x2ee7678f,
           "rotate",
-          &CJX_Draw::rotate,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Rotate,
           XFA_ScriptType::Basic)},
     {ATTR(0x570ce835,
           "presence",
-          &CJX_Draw::presence,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Presence,
           XFA_ScriptType::Basic)},
     {ATTR(0x7a7cc341,
           "vAlign",
-          &CJX_Draw::vAlign,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::VAlign,
           XFA_ScriptType::Basic)},
     {ATTR(0x7c2ff6ae,
           "maxH",
-          &CJX_Draw::maxH,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::MaxH,
           XFA_ScriptType::Basic)},
     {ATTR(0x7c2ff6bd,
           "maxW",
-          &CJX_Draw::maxW,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::MaxW,
           XFA_ScriptType::Basic)},
     {ATTR(0x7d02356c,
           "minH",
-          &CJX_Draw::minH,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::MinH,
           XFA_ScriptType::Basic)},
     {ATTR(0x7d02357b,
           "minW",
-          &CJX_Draw::minW,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::MinW,
           XFA_ScriptType::Basic)},
     {ATTR(0x8e1c2921,
           "relevant",
-          &CJX_Draw::relevant,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Relevant,
           XFA_ScriptType::Basic)},
     {ATTR(0xa03cf627,
@@ -5185,22 +5201,22 @@
           XFA_ScriptType::Basic)},
     {ATTR(0xac06e2b0,
           "colSpan",
-          &CJX_Draw::colSpan,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::ColSpan,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Draw::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc8fa350,
           "locale",
-          &CJX_Draw::locale,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Locale,
           XFA_ScriptType::Basic)},
     {ATTR(0xc2bd40fd,
           "anchorType",
-          &CJX_Draw::anchorType,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::AnchorType,
           XFA_ScriptType::Basic)},