diff --git a/BUILD.gn b/BUILD.gn
index bfb1b12..a089708 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -1349,6 +1349,7 @@
       "xfa/fxgraphics/fx_path_generator.cpp",
       "xfa/fxgraphics/fx_path_generator.h",
       "xfa/fxgraphics/pre.h",
+      "xfa/fxjse/include/fxjse.h",
       "xfa/include/fwl/adapter/fwl_adapternative.h",
       "xfa/include/fwl/adapter/fwl_adapterthreadmgr.h",
       "xfa/include/fwl/adapter/fwl_adaptertimermgr.h",
@@ -1417,11 +1418,11 @@
       "xfa/include/fxfa/fxfa_objectacc.h",
       "xfa/include/fxfa/fxfa_widget.h",
       "xfa/include/fxgraphics/fx_graphics.h",
-      "xfa/include/fxjse/fxjse.h",
     ]
     include_dirs = [ "." ]
     if (pdf_enable_v8) {
       sources += [
+        "xfa/fxjse/cfxjse_arguments.h",
         "xfa/fxjse/class.cpp",
         "xfa/fxjse/class.h",
         "xfa/fxjse/context.cpp",
diff --git a/fpdfsdk/include/javascript/DEPS b/fpdfsdk/include/javascript/DEPS
new file mode 100644
index 0000000..2846bdc
--- /dev/null
+++ b/fpdfsdk/include/javascript/DEPS
@@ -0,0 +1,3 @@
+include_rules = [
+  '+xfa/fxjse/include'
+]
diff --git a/fpdfsdk/include/javascript/IJavaScript.h b/fpdfsdk/include/javascript/IJavaScript.h
index 6b15467..3196348 100644
--- a/fpdfsdk/include/javascript/IJavaScript.h
+++ b/fpdfsdk/include/javascript/IJavaScript.h
@@ -11,7 +11,7 @@
 #include "core/include/fxcrt/fx_system.h"
 
 #ifdef PDF_ENABLE_XFA
-#include "xfa/include/fxjse/fxjse.h"
+#include "xfa/fxjse/include/fxjse.h"
 #endif  // PDF_ENABLE_XFA
 
 class CPDFDoc_Environment;
diff --git a/xfa.gyp b/xfa.gyp
index 78593df..80ece87 100644
--- a/xfa.gyp
+++ b/xfa.gyp
@@ -103,7 +103,6 @@
         "xfa/include/fxfa/fxfa_objectacc.h",
         "xfa/include/fxfa/fxfa_widget.h",
         "xfa/include/fxgraphics/fx_graphics.h",
-        "xfa/include/fxjse/fxjse.h",
         "xfa/fde/css/fde_css.h",
         "xfa/fde/css/fde_csscache.cpp",
         "xfa/fde/css/fde_csscache.h",
@@ -642,6 +641,7 @@
         "xfa/fxgraphics/fx_path_generator.cpp",
         "xfa/fxgraphics/fx_path_generator.h",
         "xfa/fxgraphics/pre.h",
+        "xfa/fxjse/include/fxjse.h",
       ],
       "conditions": [
         ["clang==1" , {
@@ -658,6 +658,7 @@
             '<(DEPTH)/v8/include',
           ],
           'sources': [
+            "xfa/fxjse/cfxjse_arguments.h",
             "xfa/fxjse/class.cpp",
             "xfa/fxjse/class.h",
             "xfa/fxjse/context.cpp",
diff --git a/xfa/fxfa/fm2js/xfa_fm2jsapi.h b/xfa/fxfa/fm2js/xfa_fm2jsapi.h
index 246bc8f..41f5464 100644
--- a/xfa/fxfa/fm2js/xfa_fm2jsapi.h
+++ b/xfa/fxfa/fm2js/xfa_fm2jsapi.h
@@ -9,7 +9,7 @@
 
 #include "core/include/fxcrt/fx_basic.h"
 #include "xfa/fxfa/parser/xfa_document.h"
-#include "xfa/include/fxjse/fxjse.h"
+#include "xfa/fxjse/include/fxjse.h"
 
 #define FOXIT_XFA_FM2JS_FORMCALC_RUNTIME "foxit_xfa_formcalc_runtime"
 
diff --git a/xfa/fxfa/fm2js/xfa_fm2jscontext.cpp b/xfa/fxfa/fm2js/xfa_fm2jscontext.cpp
index 9de6e1c..f2576b0 100644
--- a/xfa/fxfa/fm2js/xfa_fm2jscontext.cpp
+++ b/xfa/fxfa/fm2js/xfa_fm2jscontext.cpp
@@ -14,6 +14,7 @@
 #include "xfa/fxfa/parser/xfa_document.h"
 #include "xfa/fxfa/parser/xfa_localevalue.h"
 #include "xfa/fxfa/parser/xfa_parser.h"
+#include "xfa/fxjse/cfxjse_arguments.h"
 
 #define FINANCIAL_PRECISION 0.00000001
 
diff --git a/xfa/fxfa/fm2js/xfa_fm2jscontext.h b/xfa/fxfa/fm2js/xfa_fm2jscontext.h
index c80d988..b35d135 100644
--- a/xfa/fxfa/fm2js/xfa_fm2jscontext.h
+++ b/xfa/fxfa/fm2js/xfa_fm2jscontext.h
@@ -8,6 +8,7 @@
 #define XFA_FXFA_FM2JS_XFA_FM2JSCONTEXT_H_
 
 #include "xfa/fxfa/parser/xfa_script.h"
+#include "xfa/fxjse/cfxjse_arguments.h"
 
 class CXFA_FM2JSContext {
  public:
diff --git a/xfa/fxfa/parser/xfa_object.h b/xfa/fxfa/parser/xfa_object.h
index 1dba001..96dfeee 100644
--- a/xfa/fxfa/parser/xfa_object.h
+++ b/xfa/fxfa/parser/xfa_object.h
@@ -9,6 +9,7 @@
 
 #include "xfa/fde/xml/fde_xml.h"
 #include "xfa/fxfa/parser/xfa_utils.h"
+#include "xfa/fxjse/cfxjse_arguments.h"
 
 class CXFA_Document;
 class CXFA_Node;
diff --git a/xfa/fxfa/parser/xfa_object_imp.cpp b/xfa/fxfa/parser/xfa_object_imp.cpp
index 83bf800..f65e304 100644
--- a/xfa/fxfa/parser/xfa_object_imp.cpp
+++ b/xfa/fxfa/parser/xfa_object_imp.cpp
@@ -19,6 +19,7 @@
 #include "xfa/fxfa/parser/xfa_parser.h"
 #include "xfa/fxfa/parser/xfa_script.h"
 #include "xfa/fxfa/parser/xfa_utils.h"
+#include "xfa/fxjse/cfxjse_arguments.h"
 
 CXFA_Object::CXFA_Object(CXFA_Document* pDocument, FX_DWORD uFlags)
     : m_pDocument(pDocument), m_uFlags(uFlags) {}
diff --git a/xfa/fxfa/parser/xfa_script_datawindow.cpp b/xfa/fxfa/parser/xfa_script_datawindow.cpp
index 9c771e6..c338393 100644
--- a/xfa/fxfa/parser/xfa_script_datawindow.cpp
+++ b/xfa/fxfa/parser/xfa_script_datawindow.cpp
@@ -15,6 +15,7 @@
 #include "xfa/fxfa/parser/xfa_parser.h"
 #include "xfa/fxfa/parser/xfa_script.h"
 #include "xfa/fxfa/parser/xfa_utils.h"
+#include "xfa/fxjse/cfxjse_arguments.h"
 
 CScript_DataWindow::CScript_DataWindow(CXFA_Document* pDocument)
     : CXFA_OrdinaryObject(pDocument, XFA_ELEMENT_DataWindow) {
diff --git a/xfa/fxfa/parser/xfa_script_datawindow.h b/xfa/fxfa/parser/xfa_script_datawindow.h
index 9974e11..515bb99 100644
--- a/xfa/fxfa/parser/xfa_script_datawindow.h
+++ b/xfa/fxfa/parser/xfa_script_datawindow.h
@@ -8,6 +8,7 @@
 #define XFA_FXFA_PARSER_XFA_SCRIPT_DATAWINDOW_H_
 
 #include "xfa/fxfa/parser/xfa_object.h"
+#include "xfa/fxjse/cfxjse_arguments.h"
 
 class CScript_DataWindow : public CXFA_OrdinaryObject {
  public:
diff --git a/xfa/fxfa/parser/xfa_script_eventpseudomodel.cpp b/xfa/fxfa/parser/xfa_script_eventpseudomodel.cpp
index 4e1cb22..5282019 100644
--- a/xfa/fxfa/parser/xfa_script_eventpseudomodel.cpp
+++ b/xfa/fxfa/parser/xfa_script_eventpseudomodel.cpp
@@ -15,6 +15,7 @@
 #include "xfa/fxfa/parser/xfa_parser.h"
 #include "xfa/fxfa/parser/xfa_script.h"
 #include "xfa/fxfa/parser/xfa_utils.h"
+#include "xfa/fxjse/cfxjse_arguments.h"
 
 CScript_EventPseudoModel::CScript_EventPseudoModel(CXFA_Document* pDocument)
     : CXFA_OrdinaryObject(pDocument, XFA_ELEMENT_EventPseudoModel) {
diff --git a/xfa/fxfa/parser/xfa_script_eventpseudomodel.h b/xfa/fxfa/parser/xfa_script_eventpseudomodel.h
index e1db83a..54f26b2 100644
--- a/xfa/fxfa/parser/xfa_script_eventpseudomodel.h
+++ b/xfa/fxfa/parser/xfa_script_eventpseudomodel.h
@@ -8,6 +8,7 @@
 #define XFA_FXFA_PARSER_XFA_SCRIPT_EVENTPSEUDOMODEL_H_
 
 #include "xfa/fxfa/parser/xfa_object.h"
+#include "xfa/fxjse/cfxjse_arguments.h"
 
 #define XFA_EVENT_CHANGE 0
 #define XFA_EVENT_COMMITKEY 1
diff --git a/xfa/fxfa/parser/xfa_script_hostpseudomodel.cpp b/xfa/fxfa/parser/xfa_script_hostpseudomodel.cpp
index 1f5886b..4165790 100644
--- a/xfa/fxfa/parser/xfa_script_hostpseudomodel.cpp
+++ b/xfa/fxfa/parser/xfa_script_hostpseudomodel.cpp
@@ -15,6 +15,7 @@
 #include "xfa/fxfa/parser/xfa_parser.h"
 #include "xfa/fxfa/parser/xfa_script.h"
 #include "xfa/fxfa/parser/xfa_utils.h"
+#include "xfa/fxjse/cfxjse_arguments.h"
 
 CScript_HostPseudoModel::CScript_HostPseudoModel(CXFA_Document* pDocument)
     : CXFA_OrdinaryObject(pDocument, XFA_ELEMENT_HostPseudoModel) {
diff --git a/xfa/fxfa/parser/xfa_script_hostpseudomodel.h b/xfa/fxfa/parser/xfa_script_hostpseudomodel.h
index dcc2a9b..0f711b8 100644
--- a/xfa/fxfa/parser/xfa_script_hostpseudomodel.h
+++ b/xfa/fxfa/parser/xfa_script_hostpseudomodel.h
@@ -9,6 +9,7 @@
 
 #include "xfa/fxfa/parser/xfa_document.h"
 #include "xfa/fxfa/parser/xfa_object.h"
+#include "xfa/fxjse/cfxjse_arguments.h"
 
 class CScript_HostPseudoModel : public CXFA_OrdinaryObject {
  public:
diff --git a/xfa/fxfa/parser/xfa_script_imp.cpp b/xfa/fxfa/parser/xfa_script_imp.cpp
index 275f494..c49bb31 100644
--- a/xfa/fxfa/parser/xfa_script_imp.cpp
+++ b/xfa/fxfa/parser/xfa_script_imp.cpp
@@ -18,6 +18,7 @@
 #include "xfa/fxfa/parser/xfa_script_nodehelper.h"
 #include "xfa/fxfa/parser/xfa_script_resolveprocessor.h"
 #include "xfa/fxfa/parser/xfa_utils.h"
+#include "xfa/fxjse/cfxjse_arguments.h"
 
 CXFA_ScriptContext::CXFA_ScriptContext(CXFA_Document* pDocument)
     : m_pDocument(pDocument),
diff --git a/xfa/fxfa/parser/xfa_script_imp.h b/xfa/fxfa/parser/xfa_script_imp.h
index e4b5501..ab225eb 100644
--- a/xfa/fxfa/parser/xfa_script_imp.h
+++ b/xfa/fxfa/parser/xfa_script_imp.h
@@ -12,6 +12,7 @@
 #include "xfa/fxfa/fm2js/xfa_fm2jsapi.h"
 #include "xfa/fxfa/parser/xfa_document.h"
 #include "xfa/fxfa/parser/xfa_script.h"
+#include "xfa/fxjse/cfxjse_arguments.h"
 
 #define XFA_RESOLVENODE_TagName 0x0002
 
diff --git a/xfa/fxfa/parser/xfa_script_layoutpseudomodel.cpp b/xfa/fxfa/parser/xfa_script_layoutpseudomodel.cpp
index d4a4ea8..97f2c8b 100644
--- a/xfa/fxfa/parser/xfa_script_layoutpseudomodel.cpp
+++ b/xfa/fxfa/parser/xfa_script_layoutpseudomodel.cpp
@@ -17,6 +17,7 @@
 #include "xfa/fxfa/parser/xfa_parser.h"
 #include "xfa/fxfa/parser/xfa_script.h"
 #include "xfa/fxfa/parser/xfa_utils.h"
+#include "xfa/fxjse/cfxjse_arguments.h"
 
 CScript_LayoutPseudoModel::CScript_LayoutPseudoModel(CXFA_Document* pDocument)
     : CXFA_OrdinaryObject(pDocument, XFA_ELEMENT_LayoutPseudoModel) {
diff --git a/xfa/fxfa/parser/xfa_script_layoutpseudomodel.h b/xfa/fxfa/parser/xfa_script_layoutpseudomodel.h
index 349a3cc..56d9894 100644
--- a/xfa/fxfa/parser/xfa_script_layoutpseudomodel.h
+++ b/xfa/fxfa/parser/xfa_script_layoutpseudomodel.h
@@ -9,6 +9,7 @@
 
 #include "xfa/fxfa/parser/xfa_doclayout.h"
 #include "xfa/fxfa/parser/xfa_object.h"
+#include "xfa/fxjse/cfxjse_arguments.h"
 
 enum XFA_LAYOUTMODEL_HWXY {
   XFA_LAYOUTMODEL_H,
diff --git a/xfa/fxfa/parser/xfa_script_logpseudomodel.cpp b/xfa/fxfa/parser/xfa_script_logpseudomodel.cpp
index 01f94c5..f2d7f1a 100644
--- a/xfa/fxfa/parser/xfa_script_logpseudomodel.cpp
+++ b/xfa/fxfa/parser/xfa_script_logpseudomodel.cpp
@@ -15,6 +15,7 @@
 #include "xfa/fxfa/parser/xfa_parser.h"
 #include "xfa/fxfa/parser/xfa_script.h"
 #include "xfa/fxfa/parser/xfa_utils.h"
+#include "xfa/fxjse/cfxjse_arguments.h"
 
 CScript_LogPseudoModel::CScript_LogPseudoModel(CXFA_Document* pDocument)
     : CXFA_OrdinaryObject(pDocument, XFA_ELEMENT_LogPseudoModel) {
diff --git a/xfa/fxfa/parser/xfa_script_logpseudomodel.h b/xfa/fxfa/parser/xfa_script_logpseudomodel.h
index 8cd7c23..e7138fe 100644
--- a/xfa/fxfa/parser/xfa_script_logpseudomodel.h
+++ b/xfa/fxfa/parser/xfa_script_logpseudomodel.h
@@ -8,6 +8,7 @@
 #define XFA_FXFA_PARSER_XFA_SCRIPT_LOGPSEUDOMODEL_H_
 
 #include "xfa/fxfa/parser/xfa_object.h"
+#include "xfa/fxjse/cfxjse_arguments.h"
 
 class CScript_LogPseudoModel : public CXFA_OrdinaryObject {
  public:
diff --git a/xfa/fxfa/parser/xfa_script_signaturepseudomodel.cpp b/xfa/fxfa/parser/xfa_script_signaturepseudomodel.cpp
index ee33eb2..15328b0 100644
--- a/xfa/fxfa/parser/xfa_script_signaturepseudomodel.cpp
+++ b/xfa/fxfa/parser/xfa_script_signaturepseudomodel.cpp
@@ -15,6 +15,7 @@
 #include "xfa/fxfa/parser/xfa_parser.h"
 #include "xfa/fxfa/parser/xfa_script.h"
 #include "xfa/fxfa/parser/xfa_utils.h"
+#include "xfa/fxjse/cfxjse_arguments.h"
 
 CScript_SignaturePseudoModel::CScript_SignaturePseudoModel(
     CXFA_Document* pDocument)
diff --git a/xfa/fxfa/parser/xfa_script_signaturepseudomodel.h b/xfa/fxfa/parser/xfa_script_signaturepseudomodel.h
index 2591917..5ca6df1 100644
--- a/xfa/fxfa/parser/xfa_script_signaturepseudomodel.h
+++ b/xfa/fxfa/parser/xfa_script_signaturepseudomodel.h
@@ -8,6 +8,7 @@
 #define XFA_FXFA_PARSER_XFA_SCRIPT_SIGNATUREPSEUDOMODEL_H_
 
 #include "xfa/fxfa/parser/xfa_object.h"
+#include "xfa/fxjse/cfxjse_arguments.h"
 
 class CScript_SignaturePseudoModel : public CXFA_OrdinaryObject {
  public:
diff --git a/xfa/fxjse/cfxjse_arguments.h b/xfa/fxjse/cfxjse_arguments.h
new file mode 100644
index 0000000..b38d077
--- /dev/null
+++ b/xfa/fxjse/cfxjse_arguments.h
@@ -0,0 +1,25 @@
+// Copyright 2016 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FXJSE_CFXJSE_ARGUMENTS_H_
+#define XFA_FXJSE_CFXJSE_ARGUMENTS_H_
+
+#include "xfa/fxjse/include/fxjse.h"
+
+class CFXJSE_Arguments {
+ public:
+  FXJSE_HRUNTIME GetRuntime() const;
+  int32_t GetLength() const;
+  FXJSE_HVALUE GetValue(int32_t index) const;
+  FX_BOOL GetBoolean(int32_t index) const;
+  int32_t GetInt32(int32_t index) const;
+  FX_FLOAT GetFloat(int32_t index) const;
+  CFX_ByteString GetUTF8String(int32_t index) const;
+  void* GetObject(int32_t index, FXJSE_HCLASS hClass = nullptr) const;
+  FXJSE_HVALUE GetReturnValue();
+};
+
+#endif  // XFA_FXJSE_CFXJSE_ARGUMENTS_H_
diff --git a/xfa/fxjse/class.cpp b/xfa/fxjse/class.cpp
index e87fbbf..c93e0bc 100644
--- a/xfa/fxjse/class.cpp
+++ b/xfa/fxjse/class.cpp
@@ -6,6 +6,7 @@
 
 #include "xfa/fxjse/class.h"
 
+#include "xfa/fxjse/cfxjse_arguments.h"
 #include "xfa/fxjse/context.h"
 #include "xfa/fxjse/scope_inline.h"
 #include "xfa/fxjse/util_inline.h"
diff --git a/xfa/fxjse/class.h b/xfa/fxjse/class.h
index e67a77a..db52979 100644
--- a/xfa/fxjse/class.h
+++ b/xfa/fxjse/class.h
@@ -8,7 +8,8 @@
 #define XFA_FXJSE_CLASS_H_
 
 #include "v8/include/v8.h"
-#include "xfa/include/fxjse/fxjse.h"
+#include "xfa/fxjse/cfxjse_arguments.h"
+#include "xfa/fxjse/include/fxjse.h"
 
 class CFXJSE_Context;
 class CFXJSE_Value;
diff --git a/xfa/fxjse/context.h b/xfa/fxjse/context.h
index 01a1f4b..9d37009 100644
--- a/xfa/fxjse/context.h
+++ b/xfa/fxjse/context.h
@@ -9,7 +9,7 @@
 
 #include "core/include/fxcrt/fx_basic.h"
 #include "v8/include/v8.h"
-#include "xfa/include/fxjse/fxjse.h"
+#include "xfa/fxjse/include/fxjse.h"
 
 class CFXJSE_Class;
 class CFXJSE_Value;
diff --git a/xfa/fxjse/dynprop.cpp b/xfa/fxjse/dynprop.cpp
index 88cb019..fc408ac 100644
--- a/xfa/fxjse/dynprop.cpp
+++ b/xfa/fxjse/dynprop.cpp
@@ -4,6 +4,7 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
+#include "xfa/fxjse/cfxjse_arguments.h"
 #include "xfa/fxjse/class.h"
 #include "xfa/fxjse/value.h"
 
diff --git a/xfa/include/fxjse/fxjse.h b/xfa/fxjse/include/fxjse.h
similarity index 91%
rename from xfa/include/fxjse/fxjse.h
rename to xfa/fxjse/include/fxjse.h
index b1074c3..d957c58 100644
--- a/xfa/include/fxjse/fxjse.h
+++ b/xfa/fxjse/include/fxjse.h
@@ -4,13 +4,14 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#ifndef XFA_INCLUDE_FXJSE_FXJSE_H_
-#define XFA_INCLUDE_FXJSE_FXJSE_H_
+#ifndef XFA_FXJSE_INCLUDE_FXJSE_H_
+#define XFA_FXJSE_INCLUDE_FXJSE_H_
 
 #include "core/include/fxcrt/fx_string.h"
 #include "core/include/fxcrt/fx_system.h"
 
 struct FXJSE_CLASS;
+class CFXJSE_Arguments;
 
 typedef struct FXJSE_HRUNTIME_ { void* pData; } * FXJSE_HRUNTIME;
 typedef struct FXJSE_HCONTEXT_ { void* pData; } * FXJSE_HCONTEXT;
@@ -20,35 +21,6 @@
 typedef struct FXJSE_HOBJECT_ : public FXJSE_HVALUE_{} * FXJSE_HOBJECT;
 typedef double FXJSE_DOUBLE;
 
-void FXJSE_Initialize();
-void FXJSE_Finalize();
-FXJSE_HRUNTIME FXJSE_Runtime_Create();
-void FXJSE_Runtime_Release(FXJSE_HRUNTIME hRuntime, bool bOwnedRuntime);
-
-FXJSE_HCONTEXT FXJSE_Context_Create(FXJSE_HRUNTIME hRuntime,
-                                    const FXJSE_CLASS* lpGlobalClass = nullptr,
-                                    void* lpGlobalObject = nullptr);
-void FXJSE_Context_Release(FXJSE_HCONTEXT hContext);
-FXJSE_HVALUE FXJSE_Context_GetGlobalObject(FXJSE_HCONTEXT hContext);
-FXJSE_HRUNTIME FXJSE_Context_GetRuntime(FXJSE_HCONTEXT hContext);
-enum FXJSE_CompatibleModeFlags {
-  FXJSE_COMPATIBLEMODEFLAG_CONSTRUCTOREXTRAMETHODS = (1 << 0),
-  FXJSE_COMPATIBLEMODEFLAGCOUNT = 1,
-};
-void FXJSE_Context_EnableCompatibleMode(FXJSE_HCONTEXT hContext,
-                                        FX_DWORD dwCompatibleFlags);
-class CFXJSE_Arguments {
- public:
-  FXJSE_HRUNTIME GetRuntime() const;
-  int32_t GetLength() const;
-  FXJSE_HVALUE GetValue(int32_t index) const;
-  FX_BOOL GetBoolean(int32_t index) const;
-  int32_t GetInt32(int32_t index) const;
-  FX_FLOAT GetFloat(int32_t index) const;
-  CFX_ByteString GetUTF8String(int32_t index) const;
-  void* GetObject(int32_t index, FXJSE_HCLASS hClass = nullptr) const;
-  FXJSE_HVALUE GetReturnValue();
-};
 typedef void (*FXJSE_FuncCallback)(FXJSE_HOBJECT hThis,
                                    const CFX_ByteStringC& szFuncName,
                                    CFXJSE_Arguments& args);
@@ -60,25 +32,29 @@
                                         FX_BOOL bQueryIn);
 typedef FX_BOOL (*FXJSE_PropDeleter)(FXJSE_HOBJECT hObject,
                                      const CFX_ByteStringC& szPropName);
-struct FXJSE_FUNCTION {
-  const FX_CHAR* name;
-  FXJSE_FuncCallback callbackProc;
-};
-#define FXJSE_DEF_FUNCTION(functionName, functionCallback) \
-  { functionName, functionCallback }
-void FXJSE_DefineFunctions(FXJSE_HCONTEXT hContext,
-                           const FXJSE_FUNCTION* lpFunctions,
-                           int nNum);
-struct FXJSE_PROPERTY {
-  const FX_CHAR* name;
-  FXJSE_PropAccessor getProc;
-  FXJSE_PropAccessor setProc;
-};
+
 enum FXJSE_ClassPropTypes {
   FXJSE_ClassPropType_None,
   FXJSE_ClassPropType_Property,
   FXJSE_ClassPropType_Method
 };
+
+enum FXJSE_CompatibleModeFlags {
+  FXJSE_COMPATIBLEMODEFLAG_CONSTRUCTOREXTRAMETHODS = (1 << 0),
+  FXJSE_COMPATIBLEMODEFLAGCOUNT = 1,
+};
+
+struct FXJSE_FUNCTION {
+  const FX_CHAR* name;
+  FXJSE_FuncCallback callbackProc;
+};
+
+struct FXJSE_PROPERTY {
+  const FX_CHAR* name;
+  FXJSE_PropAccessor getProc;
+  FXJSE_PropAccessor setProc;
+};
+
 struct FXJSE_CLASS {
   const FX_CHAR* name;
   FXJSE_FuncCallback constructor;
@@ -92,13 +68,35 @@
   FXJSE_PropDeleter dynPropDeleter;
   FXJSE_FuncCallback dynMethodCall;
 };
+
+void FXJSE_Initialize();
+void FXJSE_Finalize();
+
+FXJSE_HRUNTIME FXJSE_Runtime_Create();
+void FXJSE_Runtime_Release(FXJSE_HRUNTIME hRuntime, bool bOwnedRuntime);
+
+FXJSE_HCONTEXT FXJSE_Context_Create(FXJSE_HRUNTIME hRuntime,
+                                    const FXJSE_CLASS* lpGlobalClass = nullptr,
+                                    void* lpGlobalObject = nullptr);
+void FXJSE_Context_Release(FXJSE_HCONTEXT hContext);
+FXJSE_HVALUE FXJSE_Context_GetGlobalObject(FXJSE_HCONTEXT hContext);
+FXJSE_HRUNTIME FXJSE_Context_GetRuntime(FXJSE_HCONTEXT hContext);
+
+void FXJSE_Context_EnableCompatibleMode(FXJSE_HCONTEXT hContext,
+                                        FX_DWORD dwCompatibleFlags);
+
+void FXJSE_DefineFunctions(FXJSE_HCONTEXT hContext,
+                           const FXJSE_FUNCTION* lpFunctions,
+                           int nNum);
 FXJSE_HCLASS FXJSE_DefineClass(FXJSE_HCONTEXT hContext,
                                const FXJSE_CLASS* lpClass);
 FXJSE_HCLASS FXJSE_GetClass(FXJSE_HCONTEXT hContext,
                             const CFX_ByteStringC& szName);
+
 FXJSE_HVALUE FXJSE_Value_Create(FXJSE_HRUNTIME hRuntime);
 void FXJSE_Value_Release(FXJSE_HVALUE hValue);
 FXJSE_HRUNTIME FXJSE_Value_GetRuntime(FXJSE_HVALUE hValue);
+
 FX_BOOL FXJSE_Value_IsUndefined(FXJSE_HVALUE hValue);
 FX_BOOL FXJSE_Value_IsNull(FXJSE_HVALUE hValue);
 FX_BOOL FXJSE_Value_IsBoolean(FXJSE_HVALUE hValue);
@@ -109,12 +107,14 @@
 FX_BOOL FXJSE_Value_IsArray(FXJSE_HVALUE hValue);
 FX_BOOL FXJSE_Value_IsFunction(FXJSE_HVALUE hValue);
 FX_BOOL FXJSE_Value_IsDate(FXJSE_HVALUE hValue);
+
 FX_BOOL FXJSE_Value_ToBoolean(FXJSE_HVALUE hValue);
 FX_FLOAT FXJSE_Value_ToFloat(FXJSE_HVALUE hValue);
 FXJSE_DOUBLE FXJSE_Value_ToDouble(FXJSE_HVALUE hValue);
 int32_t FXJSE_Value_ToInteger(FXJSE_HVALUE hValue);
 void FXJSE_Value_ToUTF8String(FXJSE_HVALUE hValue, CFX_ByteString& szStrOutput);
 void* FXJSE_Value_ToObject(FXJSE_HVALUE hValue, FXJSE_HCLASS hClass);
+
 void FXJSE_Value_SetUndefined(FXJSE_HVALUE hValue);
 void FXJSE_Value_SetNull(FXJSE_HVALUE hValue);
 void FXJSE_Value_SetBoolean(FXJSE_HVALUE hValue, FX_BOOL bBoolean);
@@ -131,6 +131,7 @@
                           FXJSE_HVALUE* rgValues);
 void FXJSE_Value_SetDate(FXJSE_HVALUE hValue, FXJSE_DOUBLE dDouble);
 void FXJSE_Value_Set(FXJSE_HVALUE hValue, FXJSE_HVALUE hOriginalValue);
+
 FX_BOOL FXJSE_Value_GetObjectProp(FXJSE_HVALUE hValue,
                                   const CFX_ByteStringC& szPropName,
                                   FXJSE_HVALUE hPropValue);
@@ -151,6 +152,7 @@
 FX_BOOL FXJSE_Value_SetObjectOwnProp(FXJSE_HVALUE hValue,
                                      const CFX_ByteStringC& szPropName,
                                      FXJSE_HVALUE hPropValue);
+
 FX_BOOL FXJSE_Value_CallFunction(FXJSE_HVALUE hFunction,
                                  FXJSE_HVALUE hThis,
                                  FXJSE_HVALUE hRetValue,
@@ -159,12 +161,15 @@
 FX_BOOL FXJSE_Value_SetFunctionBind(FXJSE_HVALUE hValue,
                                     FXJSE_HVALUE hOldFunction,
                                     FXJSE_HVALUE hNewThis);
+
 FX_BOOL FXJSE_ExecuteScript(FXJSE_HCONTEXT hContext,
                             const FX_CHAR* szScript,
                             FXJSE_HVALUE hRetValue,
                             FXJSE_HVALUE hNewThisObject = nullptr);
+
 void FXJSE_ThrowMessage(const CFX_ByteStringC& utf8Name,
                         const CFX_ByteStringC& utf8Message);
+
 FX_BOOL FXJSE_ReturnValue_GetMessage(FXJSE_HVALUE hRetValue,
                                      CFX_ByteString& utf8Name,
                                      CFX_ByteString& utf8Message);
@@ -172,4 +177,4 @@
                                       int32_t& nLine,
                                       int32_t& nCol);
 
-#endif  // XFA_INCLUDE_FXJSE_FXJSE_H_
+#endif  // XFA_FXJSE_INCLUDE_FXJSE_H_
diff --git a/xfa/include/fxfa/fxfa_basic.h b/xfa/include/fxfa/fxfa_basic.h
index a93cb45..dba3522 100644
--- a/xfa/include/fxfa/fxfa_basic.h
+++ b/xfa/include/fxfa/fxfa_basic.h
@@ -7,7 +7,8 @@
 #ifndef XFA_INCLUDE_FXFA_FXFA_BASIC_H_
 #define XFA_INCLUDE_FXFA_FXFA_BASIC_H_
 
-#include "xfa/include/fxjse/fxjse.h"
+#include "xfa/fxjse/cfxjse_arguments.h"
+#include "xfa/fxjse/include/fxjse.h"
 
 class CXFA_Measurement;
 #define XFA_HASHCODE_Xfa 0xc56b9ff
