diff --git a/fpdfsdk/src/javascript/JS_Define.h b/fpdfsdk/src/javascript/JS_Define.h
index b097aaa..0a64268 100644
--- a/fpdfsdk/src/javascript/JS_Define.h
+++ b/fpdfsdk/src/javascript/JS_Define.h
@@ -136,7 +136,7 @@
 
 template <class C,
           FX_BOOL (C::*M)(IJS_Context*,
-                          const CJS_Parameters&,
+                          const std::vector<CJS_Value>&,
                           CJS_Value&,
                           CFX_WideString&)>
 void JSMethod(const char* method_name_string,
@@ -148,7 +148,7 @@
   if (!pRuntime)
     return;
   IJS_Context* pContext = pRuntime->GetCurrentContext();
-  CJS_Parameters parameters;
+  std::vector<CJS_Value> parameters;
   for (unsigned int i = 0; i < (unsigned int)info.Length(); i++) {
     parameters.push_back(CJS_Value(pRuntime, info[i], CJS_Value::VT_unknown));
   }
@@ -436,8 +436,10 @@
   }
 }
 
-template <FX_BOOL (
-    *F)(IJS_Context*, const CJS_Parameters&, CJS_Value&, CFX_WideString&)>
+template <FX_BOOL (*F)(IJS_Context*,
+                       const std::vector<CJS_Value>&,
+                       CJS_Value&,
+                       CFX_WideString&)>
 void JSGlobalFunc(const char* func_name_string,
                   const v8::FunctionCallbackInfo<v8::Value>& info) {
   CJS_Runtime* pRuntime = static_cast<CJS_Runtime*>(
@@ -445,7 +447,7 @@
   if (!pRuntime)
     return;
   IJS_Context* pContext = pRuntime->GetCurrentContext();
-  CJS_Parameters parameters;
+  std::vector<CJS_Value> parameters;
   for (unsigned int i = 0; i < (unsigned int)info.Length(); i++) {
     parameters.push_back(CJS_Value(pRuntime, info[i], CJS_Value::VT_unknown));
   }
