Remove ScriptAttributeString() wrappers, part 6.

Change-Id: Ibed5168adb467c67fa32f699fcf10ef3dfc4a0ae
Reviewed-on: https://pdfium-review.googlesource.com/c/46560
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/fxjs/xfa/cjx_issuers.cpp b/fxjs/xfa/cjx_issuers.cpp
index 4fe7078..b1ec2fd 100644
--- a/fxjs/xfa/cjx_issuers.cpp
+++ b/fxjs/xfa/cjx_issuers.cpp
@@ -11,21 +11,3 @@
 CJX_Issuers::CJX_Issuers(CXFA_Issuers* node) : CJX_Node(node) {}
 
 CJX_Issuers::~CJX_Issuers() = default;
-
-void CJX_Issuers::type(CFXJSE_Value* pValue,
-                       bool bSetting,
-                       XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Issuers::usehref(CFXJSE_Value* pValue,
-                          bool bSetting,
-                          XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Issuers::use(CFXJSE_Value* pValue,
-                      bool bSetting,
-                      XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_issuers.h b/fxjs/xfa/cjx_issuers.h
index 23a7457..1824fda 100644
--- a/fxjs/xfa/cjx_issuers.h
+++ b/fxjs/xfa/cjx_issuers.h
@@ -16,10 +16,6 @@
  public:
   explicit CJX_Issuers(CXFA_Issuers* node);
   ~CJX_Issuers() override;
-
-  JSE_PROP(type);
-  JSE_PROP(use);
-  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_ISSUERS_H_
diff --git a/fxjs/xfa/cjx_manifest.cpp b/fxjs/xfa/cjx_manifest.cpp
index d8c95cb..555e6f2 100644
--- a/fxjs/xfa/cjx_manifest.cpp
+++ b/fxjs/xfa/cjx_manifest.cpp
@@ -37,21 +37,3 @@
                                 XFA_Attribute eAttribute) {
   ScriptSomDefaultValue(pValue, bSetting, eAttribute);
 }
-
-void CJX_Manifest::action(CFXJSE_Value* pValue,
-                          bool bSetting,
-                          XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Manifest::use(CFXJSE_Value* pValue,
-                       bool bSetting,
-                       XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Manifest::usehref(CFXJSE_Value* pValue,
-                           bool bSetting,
-                           XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_manifest.h b/fxjs/xfa/cjx_manifest.h
index 717e1f1..813691c 100644
--- a/fxjs/xfa/cjx_manifest.h
+++ b/fxjs/xfa/cjx_manifest.h
@@ -20,9 +20,6 @@
   JSE_METHOD(evaluate, CJX_Manifest);
 
   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.cpp b/fxjs/xfa/cjx_map.cpp
index ab6dadf..f02cc8b 100644
--- a/fxjs/xfa/cjx_map.cpp
+++ b/fxjs/xfa/cjx_map.cpp
@@ -11,27 +11,3 @@
 CJX_Map::CJX_Map(CXFA_Map* node) : CJX_Node(node) {}
 
 CJX_Map::~CJX_Map() = default;
-
-void CJX_Map::use(CFXJSE_Value* pValue,
-                  bool bSetting,
-                  XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Map::bind(CFXJSE_Value* pValue,
-                   bool bSetting,
-                   XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Map::usehref(CFXJSE_Value* pValue,
-                      bool bSetting,
-                      XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Map::from(CFXJSE_Value* pValue,
-                   bool bSetting,
-                   XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_map.h b/fxjs/xfa/cjx_map.h
index 8178384..2ba5d4e 100644
--- a/fxjs/xfa/cjx_map.h
+++ b/fxjs/xfa/cjx_map.h
@@ -16,11 +16,6 @@
  public:
   explicit CJX_Map(CXFA_Map* node);
   ~CJX_Map() override;
-
-  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.cpp b/fxjs/xfa/cjx_margin.cpp
index 6c99f5d..4e6e7a3 100644
--- a/fxjs/xfa/cjx_margin.cpp
+++ b/fxjs/xfa/cjx_margin.cpp
@@ -11,39 +11,3 @@
 CJX_Margin::CJX_Margin(CXFA_Margin* node) : CJX_Node(node) {}
 
 CJX_Margin::~CJX_Margin() = default;
-
-void CJX_Margin::use(CFXJSE_Value* pValue,
-                     bool bSetting,
-                     XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Margin::leftInset(CFXJSE_Value* pValue,
-                           bool bSetting,
-                           XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Margin::bottomInset(CFXJSE_Value* pValue,
-                             bool bSetting,
-                             XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Margin::topInset(CFXJSE_Value* pValue,
-                          bool bSetting,
-                          XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Margin::rightInset(CFXJSE_Value* pValue,
-                            bool bSetting,
-                            XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Margin::usehref(CFXJSE_Value* pValue,
-                         bool bSetting,
-                         XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_margin.h b/fxjs/xfa/cjx_margin.h
index 6cac5a3..90371ed 100644
--- a/fxjs/xfa/cjx_margin.h
+++ b/fxjs/xfa/cjx_margin.h
@@ -16,13 +16,6 @@
  public:
   explicit CJX_Margin(CXFA_Margin* node);
   ~CJX_Margin() override;
-
-  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.cpp b/fxjs/xfa/cjx_mdp.cpp
index ce29293..cbf87e6 100644
--- a/fxjs/xfa/cjx_mdp.cpp
+++ b/fxjs/xfa/cjx_mdp.cpp
@@ -11,27 +11,3 @@
 CJX_Mdp::CJX_Mdp(CXFA_Mdp* node) : CJX_Node(node) {}
 
 CJX_Mdp::~CJX_Mdp() = default;
-
-void CJX_Mdp::use(CFXJSE_Value* pValue,
-                  bool bSetting,
-                  XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Mdp::signatureType(CFXJSE_Value* pValue,
-                            bool bSetting,
-                            XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Mdp::usehref(CFXJSE_Value* pValue,
-                      bool bSetting,
-                      XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Mdp::permissions(CFXJSE_Value* pValue,
-                          bool bSetting,
-                          XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_mdp.h b/fxjs/xfa/cjx_mdp.h
index 833e2db..263d56b 100644
--- a/fxjs/xfa/cjx_mdp.h
+++ b/fxjs/xfa/cjx_mdp.h
@@ -16,11 +16,6 @@
  public:
   explicit CJX_Mdp(CXFA_Mdp* node);
   ~CJX_Mdp() override;
-
-  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.cpp b/fxjs/xfa/cjx_medium.cpp
index 41ccfb2..7354190 100644
--- a/fxjs/xfa/cjx_medium.cpp
+++ b/fxjs/xfa/cjx_medium.cpp
@@ -11,45 +11,3 @@
 CJX_Medium::CJX_Medium(CXFA_Medium* node) : CJX_Node(node) {}
 
 CJX_Medium::~CJX_Medium() = default;
-
-void CJX_Medium::use(CFXJSE_Value* pValue,
-                     bool bSetting,
-                     XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Medium::orientation(CFXJSE_Value* pValue,
-                             bool bSetting,
-                             XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Medium::imagingBBox(CFXJSE_Value* pValue,
-                             bool bSetting,
-                             XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Medium::shortValue(CFXJSE_Value* pValue,
-                            bool bSetting,
-                            XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Medium::usehref(CFXJSE_Value* pValue,
-                         bool bSetting,
-                         XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Medium::stock(CFXJSE_Value* pValue,
-                       bool bSetting,
-                       XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Medium::longValue(CFXJSE_Value* pValue,
-                           bool bSetting,
-                           XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_medium.h b/fxjs/xfa/cjx_medium.h
index 1efb34b..9407304 100644
--- a/fxjs/xfa/cjx_medium.h
+++ b/fxjs/xfa/cjx_medium.h
@@ -16,14 +16,6 @@
  public:
   explicit CJX_Medium(CXFA_Medium* node);
   ~CJX_Medium() override;
-
-  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.cpp b/fxjs/xfa/cjx_message.cpp
index 13ae53b..1f1f7f1 100644
--- a/fxjs/xfa/cjx_message.cpp
+++ b/fxjs/xfa/cjx_message.cpp
@@ -11,15 +11,3 @@
 CJX_Message::CJX_Message(CXFA_Message* node) : CJX_Node(node) {}
 
 CJX_Message::~CJX_Message() = default;
-
-void CJX_Message::use(CFXJSE_Value* pValue,
-                      bool bSetting,
-                      XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Message::usehref(CFXJSE_Value* pValue,
-                          bool bSetting,
-                          XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_message.h b/fxjs/xfa/cjx_message.h
index f5c577c..e68d9fe 100644
--- a/fxjs/xfa/cjx_message.h
+++ b/fxjs/xfa/cjx_message.h
@@ -16,9 +16,6 @@
  public:
   explicit CJX_Message(CXFA_Message* node);
   ~CJX_Message() override;
-
-  JSE_PROP(use);
-  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_MESSAGE_H_
diff --git a/fxjs/xfa/cjx_node.cpp b/fxjs/xfa/cjx_node.cpp
index 49e8b96..623839d 100644
--- a/fxjs/xfa/cjx_node.cpp
+++ b/fxjs/xfa/cjx_node.cpp
@@ -436,12 +436,6 @@
   return CJS_Result::Success();
 }
 
-void CJX_Node::id(CFXJSE_Value* pValue,
-                  bool bSetting,
-                  XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
 void CJX_Node::ns(CFXJSE_Value* pValue,
                   bool bSetting,
                   XFA_Attribute eAttribute) {
diff --git a/fxjs/xfa/cjx_node.h b/fxjs/xfa/cjx_node.h
index b73b4fb..948ec85 100644
--- a/fxjs/xfa/cjx_node.h
+++ b/fxjs/xfa/cjx_node.h
@@ -30,7 +30,6 @@
   JSE_METHOD(setAttribute, CJX_Node);
   JSE_METHOD(setElement, CJX_Node);
 
-  JSE_PROP(id);
   JSE_PROP(isContainer);
   JSE_PROP(isNull);
   JSE_PROP(model);
diff --git a/fxjs/xfa/cjx_numericedit.cpp b/fxjs/xfa/cjx_numericedit.cpp
index 2f5af95..f8c76db 100644
--- a/fxjs/xfa/cjx_numericedit.cpp
+++ b/fxjs/xfa/cjx_numericedit.cpp
@@ -11,21 +11,3 @@
 CJX_NumericEdit::CJX_NumericEdit(CXFA_NumericEdit* node) : CJX_Node(node) {}
 
 CJX_NumericEdit::~CJX_NumericEdit() = default;
-
-void CJX_NumericEdit::use(CFXJSE_Value* pValue,
-                          bool bSetting,
-                          XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_NumericEdit::usehref(CFXJSE_Value* pValue,
-                              bool bSetting,
-                              XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_NumericEdit::hScrollPolicy(CFXJSE_Value* pValue,
-                                    bool bSetting,
-                                    XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_numericedit.h b/fxjs/xfa/cjx_numericedit.h
index d74b0c8..b03c68c 100644
--- a/fxjs/xfa/cjx_numericedit.h
+++ b/fxjs/xfa/cjx_numericedit.h
@@ -16,10 +16,6 @@
  public:
   explicit CJX_NumericEdit(CXFA_NumericEdit* node);
   ~CJX_NumericEdit() override;
-
-  JSE_PROP(hScrollPolicy);
-  JSE_PROP(use);
-  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_NUMERICEDIT_H_
diff --git a/fxjs/xfa/cjx_occur.cpp b/fxjs/xfa/cjx_occur.cpp
index 2bce74b..9a8f47f 100644
--- a/fxjs/xfa/cjx_occur.cpp
+++ b/fxjs/xfa/cjx_occur.cpp
@@ -36,21 +36,3 @@
   }
   occur->SetMin(pValue->ToInteger());
 }
-
-void CJX_Occur::use(CFXJSE_Value* pValue,
-                    bool bSetting,
-                    XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Occur::initial(CFXJSE_Value* pValue,
-                        bool bSetting,
-                        XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Occur::usehref(CFXJSE_Value* pValue,
-                        bool bSetting,
-                        XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_occur.h b/fxjs/xfa/cjx_occur.h
index 114f5b3..19899a6 100644
--- a/fxjs/xfa/cjx_occur.h
+++ b/fxjs/xfa/cjx_occur.h
@@ -17,11 +17,8 @@
   explicit CJX_Occur(CXFA_Occur* node);
   ~CJX_Occur() override;
 
-  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.cpp b/fxjs/xfa/cjx_oid.cpp
index e6c3a01..8e7ecdc 100644
--- a/fxjs/xfa/cjx_oid.cpp
+++ b/fxjs/xfa/cjx_oid.cpp
@@ -11,15 +11,3 @@
 CJX_Oid::CJX_Oid(CXFA_Oid* node) : CJX_TextNode(node) {}
 
 CJX_Oid::~CJX_Oid() = default;
-
-void CJX_Oid::use(CFXJSE_Value* pValue,
-                  bool bSetting,
-                  XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Oid::usehref(CFXJSE_Value* pValue,
-                      bool bSetting,
-                      XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_oid.h b/fxjs/xfa/cjx_oid.h
index f3c528e..62b9c54 100644
--- a/fxjs/xfa/cjx_oid.h
+++ b/fxjs/xfa/cjx_oid.h
@@ -16,9 +16,6 @@
  public:
   explicit CJX_Oid(CXFA_Oid* node);
   ~CJX_Oid() override;
-
-  JSE_PROP(use);
-  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_OID_H_
diff --git a/fxjs/xfa/cjx_oids.cpp b/fxjs/xfa/cjx_oids.cpp
index aa4e041..225eb43 100644
--- a/fxjs/xfa/cjx_oids.cpp
+++ b/fxjs/xfa/cjx_oids.cpp
@@ -11,21 +11,3 @@
 CJX_Oids::CJX_Oids(CXFA_Oids* node) : CJX_Node(node) {}
 
 CJX_Oids::~CJX_Oids() = default;
-
-void CJX_Oids::use(CFXJSE_Value* pValue,
-                   bool bSetting,
-                   XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Oids::type(CFXJSE_Value* pValue,
-                    bool bSetting,
-                    XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Oids::usehref(CFXJSE_Value* pValue,
-                       bool bSetting,
-                       XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_oids.h b/fxjs/xfa/cjx_oids.h
index a205fa0..b7eff1f 100644
--- a/fxjs/xfa/cjx_oids.h
+++ b/fxjs/xfa/cjx_oids.h
@@ -16,10 +16,6 @@
  public:
   explicit CJX_Oids(CXFA_Oids* node);
   ~CJX_Oids() override;
-
-  JSE_PROP(type);
-  JSE_PROP(use);
-  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_OIDS_H_
diff --git a/fxjs/xfa/cjx_operation.cpp b/fxjs/xfa/cjx_operation.cpp
index fd499e3..83678b9 100644
--- a/fxjs/xfa/cjx_operation.cpp
+++ b/fxjs/xfa/cjx_operation.cpp
@@ -11,27 +11,3 @@
 CJX_Operation::CJX_Operation(CXFA_Operation* node) : CJX_TextNode(node) {}
 
 CJX_Operation::~CJX_Operation() = default;
-
-void CJX_Operation::use(CFXJSE_Value* pValue,
-                        bool bSetting,
-                        XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Operation::output(CFXJSE_Value* pValue,
-                           bool bSetting,
-                           XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Operation::usehref(CFXJSE_Value* pValue,
-                            bool bSetting,
-                            XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Operation::input(CFXJSE_Value* pValue,
-                          bool bSetting,
-                          XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_operation.h b/fxjs/xfa/cjx_operation.h
index 3d16997..655f395 100644
--- a/fxjs/xfa/cjx_operation.h
+++ b/fxjs/xfa/cjx_operation.h
@@ -16,11 +16,6 @@
  public:
   explicit CJX_Operation(CXFA_Operation* node);
   ~CJX_Operation() override;
-
-  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.cpp b/fxjs/xfa/cjx_overflow.cpp
index 68d2890..041ae5b 100644
--- a/fxjs/xfa/cjx_overflow.cpp
+++ b/fxjs/xfa/cjx_overflow.cpp
@@ -11,33 +11,3 @@
 CJX_Overflow::CJX_Overflow(CXFA_Overflow* node) : CJX_Node(node) {}
 
 CJX_Overflow::~CJX_Overflow() = default;
-
-void CJX_Overflow::use(CFXJSE_Value* pValue,
-                       bool bSetting,
-                       XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Overflow::trailer(CFXJSE_Value* pValue,
-                           bool bSetting,
-                           XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Overflow::usehref(CFXJSE_Value* pValue,
-                           bool bSetting,
-                           XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Overflow::target(CFXJSE_Value* pValue,
-                          bool bSetting,
-                          XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Overflow::leader(CFXJSE_Value* pValue,
-                          bool bSetting,
-                          XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_overflow.h b/fxjs/xfa/cjx_overflow.h
index 5bd9b6d..1caeefb 100644
--- a/fxjs/xfa/cjx_overflow.h
+++ b/fxjs/xfa/cjx_overflow.h
@@ -16,12 +16,6 @@
  public:
   explicit CJX_Overflow(CXFA_Overflow* node);
   ~CJX_Overflow() override;
-
-  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_pagearea.cpp b/fxjs/xfa/cjx_pagearea.cpp
index cbc5b49..fbf3c6f 100644
--- a/fxjs/xfa/cjx_pagearea.cpp
+++ b/fxjs/xfa/cjx_pagearea.cpp
@@ -11,51 +11,3 @@
 CJX_PageArea::CJX_PageArea(CXFA_PageArea* node) : CJX_Container(node) {}
 
 CJX_PageArea::~CJX_PageArea() = default;
-
-void CJX_PageArea::use(CFXJSE_Value* pValue,
-                       bool bSetting,
-                       XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_PageArea::pagePosition(CFXJSE_Value* pValue,
-                                bool bSetting,
-                                XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_PageArea::oddOrEven(CFXJSE_Value* pValue,
-                             bool bSetting,
-                             XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_PageArea::relevant(CFXJSE_Value* pValue,
-                            bool bSetting,
-                            XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_PageArea::initialNumber(CFXJSE_Value* pValue,
-                                 bool bSetting,
-                                 XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_PageArea::usehref(CFXJSE_Value* pValue,
-                           bool bSetting,
-                           XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_PageArea::numbered(CFXJSE_Value* pValue,
-                            bool bSetting,
-                            XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_PageArea::blankOrNotBlank(CFXJSE_Value* pValue,
-                                   bool bSetting,
-                                   XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_pagearea.h b/fxjs/xfa/cjx_pagearea.h
index 8985a47..35c017c 100644
--- a/fxjs/xfa/cjx_pagearea.h
+++ b/fxjs/xfa/cjx_pagearea.h
@@ -16,15 +16,6 @@
  public:
   explicit CJX_PageArea(CXFA_PageArea* node);
   ~CJX_PageArea() override;
-
-  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.cpp b/fxjs/xfa/cjx_pageset.cpp
index b8ad4b0..7a86727 100644
--- a/fxjs/xfa/cjx_pageset.cpp
+++ b/fxjs/xfa/cjx_pageset.cpp
@@ -11,27 +11,3 @@
 CJX_PageSet::CJX_PageSet(CXFA_PageSet* node) : CJX_Container(node) {}
 
 CJX_PageSet::~CJX_PageSet() = default;
-
-void CJX_PageSet::relation(CFXJSE_Value* pValue,
-                           bool bSetting,
-                           XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_PageSet::relevant(CFXJSE_Value* pValue,
-                           bool bSetting,
-                           XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_PageSet::use(CFXJSE_Value* pValue,
-                      bool bSetting,
-                      XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_PageSet::usehref(CFXJSE_Value* pValue,
-                          bool bSetting,
-                          XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_pageset.h b/fxjs/xfa/cjx_pageset.h
index adffdc0..5d2eb21 100644
--- a/fxjs/xfa/cjx_pageset.h
+++ b/fxjs/xfa/cjx_pageset.h
@@ -16,11 +16,6 @@
  public:
   explicit CJX_PageSet(CXFA_PageSet* node);
   ~CJX_PageSet() override;
-
-  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.cpp b/fxjs/xfa/cjx_para.cpp
index 6e6369c..6970ec9 100644
--- a/fxjs/xfa/cjx_para.cpp
+++ b/fxjs/xfa/cjx_para.cpp
@@ -11,87 +11,3 @@
 CJX_Para::CJX_Para(CXFA_Para* node) : CJX_Node(node) {}
 
 CJX_Para::~CJX_Para() = default;
-
-void CJX_Para::hAlign(CFXJSE_Value* pValue,
-                      bool bSetting,
-                      XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Para::textIndent(CFXJSE_Value* pValue,
-                          bool bSetting,
-                          XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Para::use(CFXJSE_Value* pValue,
-                   bool bSetting,
-                   XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Para::marginRight(CFXJSE_Value* pValue,
-                           bool bSetting,
-                           XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Para::marginLeft(CFXJSE_Value* pValue,
-                          bool bSetting,
-                          XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Para::radixOffset(CFXJSE_Value* pValue,
-                           bool bSetting,
-                           XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Para::preserve(CFXJSE_Value* pValue,
-                        bool bSetting,
-                        XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Para::spaceBelow(CFXJSE_Value* pValue,
-                          bool bSetting,
-                          XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Para::vAlign(CFXJSE_Value* pValue,
-                      bool bSetting,
-                      XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Para::tabDefault(CFXJSE_Value* pValue,
-                          bool bSetting,
-                          XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Para::tabStops(CFXJSE_Value* pValue,
-                        bool bSetting,
-                        XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Para::usehref(CFXJSE_Value* pValue,
-                       bool bSetting,
-                       XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Para::lineHeight(CFXJSE_Value* pValue,
-                          bool bSetting,
-                          XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Para::spaceAbove(CFXJSE_Value* pValue,
-                          bool bSetting,
-                          XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_para.h b/fxjs/xfa/cjx_para.h
index 0a527d6..70604ac 100644
--- a/fxjs/xfa/cjx_para.h
+++ b/fxjs/xfa/cjx_para.h
@@ -16,21 +16,6 @@
  public:
   explicit CJX_Para(CXFA_Para* node);
   ~CJX_Para() override;
-
-  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.cpp b/fxjs/xfa/cjx_password.cpp
index cd57789..e9b5ec5 100644
--- a/fxjs/xfa/cjx_password.cpp
+++ b/fxjs/xfa/cjx_password.cpp
@@ -11,15 +11,3 @@
 CJX_Password::CJX_Password(CXFA_Password* node) : CJX_TextNode(node) {}
 
 CJX_Password::~CJX_Password() = default;
-
-void CJX_Password::use(CFXJSE_Value* pValue,
-                       bool bSetting,
-                       XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
-
-void CJX_Password::usehref(CFXJSE_Value* pValue,
-                           bool bSetting,
-                           XFA_Attribute eAttribute) {
-  ScriptAttributeString(pValue, bSetting, eAttribute);
-}
diff --git a/fxjs/xfa/cjx_password.h b/fxjs/xfa/cjx_password.h
index 1cec53c..9af175f 100644
--- a/fxjs/xfa/cjx_password.h
+++ b/fxjs/xfa/cjx_password.h
@@ -16,9 +16,6 @@
  public:
   explicit CJX_Password(CXFA_Password* node);
   ~CJX_Password() override;
-
-  JSE_PROP(use);
-  JSE_PROP(usehref);
 };
 
 #endif  // FXJS_XFA_CJX_PASSWORD_H_
diff --git a/xfa/fxfa/parser/xfa_basic_data_element_script.cpp b/xfa/fxfa/parser/xfa_basic_data_element_script.cpp
index 10b2e83..c0bfc41 100644
--- a/xfa/fxfa/parser/xfa_basic_data_element_script.cpp
+++ b/xfa/fxfa/parser/xfa_basic_data_element_script.cpp
@@ -854,17 +854,17 @@
     /* map */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Map::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0xb0e5485d,
           "bind",
-          &CJX_Map::bind,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Bind,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Map::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
     {ATTR(0xbe52dfbf,
@@ -874,7 +874,7 @@
           XFA_ScriptType::Basic)},
     {ATTR(0xcd7f7b54,
           "from",
-          &CJX_Map::from,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::From,
           XFA_ScriptType::Basic)},
     {ATTR(0xf6b47749,
@@ -886,22 +886,22 @@
     /* mdp */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Mdp::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0x8e29d794,
           "signatureType",
-          &CJX_Mdp::signatureType,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::SignatureType,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Mdp::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
     {ATTR(0xe11a2cbc,
           "permissions",
-          &CJX_Mdp::permissions,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Permissions,
           XFA_ScriptType::Basic)},
 
@@ -945,12 +945,12 @@
     /* oid */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Oid::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Oid::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
 
@@ -1137,32 +1137,32 @@
     /* margin */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Margin::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0xcfea02e,
           "leftInset",
-          &CJX_Margin::leftInset,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::LeftInset,
           XFA_ScriptType::Basic)},
     {ATTR(0x1356caf8,
           "bottomInset",
-          &CJX_Margin::bottomInset,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::BottomInset,
           XFA_ScriptType::Basic)},
     {ATTR(0x25764436,
           "topInset",
-          &CJX_Margin::topInset,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::TopInset,
           XFA_ScriptType::Basic)},
     {ATTR(0x8a692521,
           "rightInset",
-          &CJX_Margin::rightInset,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::RightInset,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Margin::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
 
@@ -1306,72 +1306,72 @@
     /* para */
     {ATTR(0x2282c73,
           "hAlign",
-          &CJX_Para::hAlign,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::HAlign,
           XFA_ScriptType::Basic)},
     {ATTR(0x8d4f1c7,
           "textIndent",
-          &CJX_Para::textIndent,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::TextIndent,
           XFA_ScriptType::Basic)},
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Para::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0x2a82d99c,
           "marginRight",
-          &CJX_Para::marginRight,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::MarginRight,
           XFA_ScriptType::Basic)},
     {ATTR(0x534729c9,
           "marginLeft",
-          &CJX_Para::marginLeft,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::MarginLeft,
           XFA_ScriptType::Basic)},
     {ATTR(0x5739d1ff,
           "radixOffset",
-          &CJX_Para::radixOffset,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::RadixOffset,
           XFA_ScriptType::Basic)},
     {ATTR(0x577682ac,
           "preserve",
-          &CJX_Para::preserve,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Preserve,
           XFA_ScriptType::Basic)},
     {ATTR(0x731e0665,
           "spaceBelow",
-          &CJX_Para::spaceBelow,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::SpaceBelow,
           XFA_ScriptType::Basic)},
     {ATTR(0x7a7cc341,
           "vAlign",
-          &CJX_Para::vAlign,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::VAlign,
           XFA_ScriptType::Basic)},
     {ATTR(0x836d4d7c,
           "tabDefault",
-          &CJX_Para::tabDefault,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::TabDefault,
           XFA_ScriptType::Basic)},
     {ATTR(0x8fa01790,
           "tabStops",
-          &CJX_Para::tabStops,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::TabStops,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Para::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
     {ATTR(0xd4b01921,
           "lineHeight",
-          &CJX_Para::lineHeight,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::LineHeight,
           XFA_ScriptType::Basic)},
     {ATTR(0xe18b5659,
           "spaceAbove",
-          &CJX_Para::spaceAbove,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::SpaceAbove,
           XFA_ScriptType::Basic)},
 
@@ -1667,22 +1667,22 @@
     /* operation */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Operation::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0x60d4c8b1,
           "output",
-          &CJX_Operation::output,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Output,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Operation::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
     {ATTR(0xd6a39990,
           "input",
-          &CJX_Operation::input,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Input,
           XFA_ScriptType::Basic)},
 
@@ -1698,17 +1698,17 @@
     /* issuers */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Issuers::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0x2f16a382,
           "type",
-          &CJX_Issuers::type,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Type,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Issuers::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
 
@@ -1850,7 +1850,7 @@
           XFA_ScriptType::Basic)},
     {ATTR(0x21aed,
           "id",
-          &CJX_Area::id,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Id,
           XFA_ScriptType::Basic)},
     {ATTR(0x31b19c1,
@@ -3483,12 +3483,12 @@
     /* message */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Message::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Message::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
     {ATTR(0xbe52dfbf,
@@ -3845,22 +3845,22 @@
     /* pageSet */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_PageSet::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0x8c99377e,
           "relation",
-          &CJX_PageSet::relation,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Relation,
           XFA_ScriptType::Basic)},
     {ATTR(0x8e1c2921,
           "relevant",
-          &CJX_PageSet::relevant,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Relevant,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_PageSet::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
 
@@ -4246,17 +4246,17 @@
     /* numericEdit */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_NumericEdit::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_NumericEdit::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
     {ATTR(0xe6f99487,
           "hScrollPolicy",
-          &CJX_NumericEdit::hScrollPolicy,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::HScrollPolicy,
           XFA_ScriptType::Basic)},
 
@@ -4287,42 +4287,42 @@
     /* pageArea */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_PageArea::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0x14a32d52,
           "pagePosition",
-          &CJX_PageArea::pagePosition,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::PagePosition,
           XFA_ScriptType::Basic)},
     {ATTR(0x8340ea66,
           "oddOrEven",
-          &CJX_PageArea::oddOrEven,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::OddOrEven,
           XFA_ScriptType::Basic)},
     {ATTR(0x8e1c2921,
           "relevant",
-          &CJX_PageArea::relevant,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Relevant,
           XFA_ScriptType::Basic)},
     {ATTR(0xa85e74f3,
           "initialNumber",
-          &CJX_PageArea::initialNumber,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::InitialNumber,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_PageArea::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
     {ATTR(0xbe9ba472,
           "numbered",
-          &CJX_PageArea::numbered,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Numbered,
           XFA_ScriptType::Basic)},
     {ATTR(0xd70798c2,
           "blankOrNotBlank",
-          &CJX_PageArea::blankOrNotBlank,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::BlankOrNotBlank,
           XFA_ScriptType::Basic)},
 
@@ -4346,17 +4346,17 @@
     /* oids */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Oids::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0x2f16a382,
           "type",
-          &CJX_Oids::type,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Type,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Oids::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
 
@@ -4526,12 +4526,12 @@
     /* manifest */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Manifest::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0x1b8dce3e,
           "action",
-          &CJX_Manifest::action,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Action,
           XFA_ScriptType::Basic)},
     {ATTR(0xa52682bd,
@@ -4541,34 +4541,34 @@
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Manifest::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
 
     /* overflow */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Overflow::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0x9dcc3ab3,
           "trailer",
-          &CJX_Overflow::trailer,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Trailer,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Overflow::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
     {ATTR(0xc8da4da7,
           "target",
-          &CJX_Overflow::target,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Target,
           XFA_ScriptType::Basic)},
     {ATTR(0xcbcaf66d,
           "leader",
-          &CJX_Overflow::leader,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Leader,
           XFA_ScriptType::Basic)},
 
@@ -4669,37 +4669,37 @@
     /* medium */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Medium::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0x4ef3d02c,
           "orientation",
-          &CJX_Medium::orientation,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Orientation,
           XFA_ScriptType::Basic)},
     {ATTR(0x65e30c67,
           "imagingBBox",
-          &CJX_Medium::imagingBBox,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::ImagingBBox,
           XFA_ScriptType::Basic)},
     {ATTR(0x9041d4b0,
           "short",
-          &CJX_Medium::shortValue,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Short,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Medium::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
     {ATTR(0xe349d044,
           "stock",
-          &CJX_Medium::stock,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Stock,
           XFA_ScriptType::Basic)},
     {ATTR(0xf6b4afb0,
           "long",
-          &CJX_Medium::longValue,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Long,
           XFA_ScriptType::Basic)},
 
@@ -5518,12 +5518,12 @@
     /* password */
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Password::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Password::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
 
@@ -6242,17 +6242,17 @@
           XFA_ScriptType::Basic)},
     {ATTR(0xc0811ed,
           "use",
-          &CJX_Occur::use,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Use,
           XFA_ScriptType::Basic)},
     {ATTR(0x7d0b5fca,
           "initial",
-          &CJX_Occur::initial,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Initial,
           XFA_ScriptType::Basic)},
     {ATTR(0xbc254332,
           "usehref",
-          &CJX_Occur::usehref,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Usehref,
           XFA_ScriptType::Basic)},
 
@@ -6428,7 +6428,7 @@
     /* node */
     {ATTR(0x21aed,
           "id",
-          &CJX_Node::id,
+          &CJX_Object::ScriptAttributeString,
           XFA_Attribute::Id,
           XFA_ScriptType::Basic)},
     {ATTR(0x234a1,