Cleanup statics in JS classes

This CL removes the static object IDs from each of the CJS_Object
subclasses and moves them to anonymous namespaces. The Spec arrays are
moved to private members of the object classes.

Change-Id: I5dcdb87ef57e4b374b5431580fb55cb75023f8fb
Reviewed-on: https://pdfium-review.googlesource.com/16950
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
diff --git a/fpdfsdk/javascript/Field.cpp b/fpdfsdk/javascript/Field.cpp
index 0a35bf5..2a10406 100644
--- a/fpdfsdk/javascript/Field.cpp
+++ b/fpdfsdk/javascript/Field.cpp
@@ -165,14 +165,20 @@
     {"signatureValidate", signatureValidate_static},
     {0, 0}};
 
-int CJS_Field::g_nObjDefnID = -1;
+int CJS_Field::ObjDefnID = -1;
 
+// static
+int CJS_Field::GetObjDefnID() {
+  return ObjDefnID;
+}
+
+// static
 void CJS_Field::DefineJSObjects(CFXJS_Engine* pEngine, FXJSOBJTYPE eObjType) {
-  g_nObjDefnID =
+  ObjDefnID =
       pEngine->DefineObj("Field", eObjType, JSConstructor<CJS_Field, Field>,
                          JSDestructor<CJS_Field>);
-  DefineProps(pEngine, g_nObjDefnID, PropertySpecs);
-  DefineMethods(pEngine, g_nObjDefnID, MethodSpecs);
+  DefineProps(pEngine, ObjDefnID, PropertySpecs);
+  DefineMethods(pEngine, ObjDefnID, MethodSpecs);
 }
 
 CJS_DelayData::CJS_DelayData(FIELD_PROP prop, int idx, const WideString& name)
@@ -2271,7 +2277,7 @@
     return CJS_Return(false);
 
   v8::Local<v8::Object> pObj =
-      pRuntime->NewFxDynamicObj(CJS_Icon::g_nObjDefnID);
+      pRuntime->NewFxDynamicObj(CJS_Icon::GetObjDefnID());
   if (pObj.IsEmpty())
     return CJS_Return(false);
 
@@ -2391,7 +2397,7 @@
   int j = 0;
   for (const auto& pStr : swSort) {
     v8::Local<v8::Object> pObj =
-        pRuntime->NewFxDynamicObj(CJS_Field::g_nObjDefnID);
+        pRuntime->NewFxDynamicObj(CJS_Field::GetObjDefnID());
     if (pObj.IsEmpty())
       return CJS_Return(false);