summaryrefslogtreecommitdiff
path: root/xfa/fxjse/context.h
diff options
context:
space:
mode:
Diffstat (limited to 'xfa/fxjse/context.h')
-rw-r--r--xfa/fxjse/context.h19
1 files changed, 11 insertions, 8 deletions
diff --git a/xfa/fxjse/context.h b/xfa/fxjse/context.h
index 75973f2a66..0092aac7f3 100644
--- a/xfa/fxjse/context.h
+++ b/xfa/fxjse/context.h
@@ -7,6 +7,9 @@
#ifndef XFA_FXJSE_CONTEXT_H_
#define XFA_FXJSE_CONTEXT_H_
+#include <memory>
+#include <vector>
+
#include "core/fxcrt/include/fx_basic.h"
#include "v8/include/v8.h"
#include "xfa/fxjse/include/fxjse.h"
@@ -15,33 +18,33 @@ class CFXJSE_Class;
class CFXJSE_Value;
class CFXJSE_Context {
- protected:
- CFXJSE_Context(v8::Isolate* pIsolate) : m_pIsolate(pIsolate) {}
-
public:
static CFXJSE_Context* Create(v8::Isolate* pIsolate,
- const FXJSE_CLASS* lpGlobalClass = NULL,
- void* lpGlobalObject = NULL);
+ const FXJSE_CLASS* lpGlobalClass = nullptr,
+ void* lpGlobalObject = nullptr);
~CFXJSE_Context();
+
V8_INLINE v8::Isolate* GetRuntime(void) { return m_pIsolate; }
void GetGlobalObject(CFXJSE_Value* pValue);
FX_BOOL ExecuteScript(const FX_CHAR* szScript,
CFXJSE_Value* lpRetValue,
- CFXJSE_Value* lpNewThisObject = NULL);
+ CFXJSE_Value* lpNewThisObject = nullptr);
protected:
CFXJSE_Context();
CFXJSE_Context(const CFXJSE_Context&);
+ explicit CFXJSE_Context(v8::Isolate* pIsolate);
CFXJSE_Context& operator=(const CFXJSE_Context&);
- protected:
v8::Global<v8::Context> m_hContext;
v8::Isolate* m_pIsolate;
- CFX_ArrayTemplate<CFXJSE_Class*> m_rgClasses;
+ std::vector<std::unique_ptr<CFXJSE_Class>> m_rgClasses;
+
friend class CFXJSE_Class;
friend class CFXJSE_ScopeUtil_IsolateHandleContext;
friend class CFXJSE_ScopeUtil_IsolateHandleRootOrNormalContext;
};
+
v8::Local<v8::Object> FXJSE_CreateReturnValue(v8::Isolate* pIsolate,
v8::TryCatch& trycatch);