Merge to XFA: Pass IJS_Runtime, not IJS_Context, to native object constructors.

Original Review URL: https://codereview.chromium.org/1389163007 .
(cherry picked from commit 848a13b6777cbff8cc4aea3ab3d69eaa0b82ae6c)

Merge conflics in:
fpdfsdk/src/javascript/JS_Runtime.cpp
fpdfsdk/src/javascript/JS_Runtime_Stub.cpp
fpdfsdk/src/jsapi/fxjs_v8.cpp

R=thestig@chromium.org

Review URL: https://codereview.chromium.org/1394993006 .
diff --git a/fpdfsdk/include/javascript/IJavaScript.h b/fpdfsdk/include/javascript/IJavaScript.h
index f78ee52..c8962bd 100644
--- a/fpdfsdk/include/javascript/IJavaScript.h
+++ b/fpdfsdk/include/javascript/IJavaScript.h
@@ -17,10 +17,11 @@
 class CPDF_Bookmark;
 class CPDF_FormField;
 
+// Records the details of an event and triggers JS execution for it.
 class IJS_Context {
  public:
   virtual FX_BOOL RunScript(const CFX_WideString& script,
-                            CFX_WideString& info) = 0;
+                            CFX_WideString* info) = 0;
 
   virtual void OnApp_Init() = 0;
 
@@ -132,6 +133,7 @@
   virtual ~IJS_Context() {}
 };
 
+// Owns the FJXS objects needed to actually execute JS.
 class IJS_Runtime {
  public:
   static void Initialize(unsigned int slot, void* isolate);
@@ -144,6 +146,9 @@
   virtual void SetReaderDocument(CPDFSDK_Document* pReaderDoc) = 0;
 
   virtual CPDFSDK_Document* GetReaderDocument() = 0;
+  virtual int Execute(IJS_Context* cc,
+                      const wchar_t* script,
+                      CFX_WideString* info) = 0;
 
   virtual FX_BOOL GetHValueByName(const CFX_ByteStringC& utf8Name,
                                   FXJSE_HVALUE hValue) = 0;