#ifndef V8EXECUTOR_H #define V8EXECUTOR_H #include "libplatform/libplatform.h" #include "v8.h" #include #include #include static QMap> *map = new QMap>(); class V8Executor { private: std::unique_ptr platform; v8::Isolate::CreateParams create_params; v8::Isolate *m_isolate; v8::Isolate::Scope *m_isolate_scope; v8::Global *m_global_context; void injectObject(const char *string, v8::Local local); v8::Local innerExec(const char *script, const char *source, std::string *exception_str); void injectFunctions(const char *objectName, const char *functionName, bool hashKey); v8::Local invokeMethod(const char *objectName, const char *functionName, int argc, v8::Local argv[], std::string *exception_str); public: V8Executor(); ~V8Executor(); QString loadJS(QString script, QString source); void injectGlobalJSObject(QString name, std::string target); void injectGlobalJSFunction(QString name, QObject *function, QString property); void invokeObject(QString objectName, QString functionName, QVariantList arguments); }; #endif // V8EXECUTOR_H