Initial commit

This commit is contained in:
Bassem Girgis
2018-12-20 17:34:07 -06:00
parent 7a2d899662
commit 81b4b9e273
34743 changed files with 5940233 additions and 0 deletions

View File

@@ -0,0 +1,53 @@
#ifndef JS_SHELL_H
#define JS_SHELL_H
#include <vector>
#include <string>
typedef void* HANDLE;
typedef void* MODULE;
class JSShell {
public:
enum Engine {
JSC = 0,
V8
};
public:
JSShell() {}
virtual ~JSShell() = 0;
static JSShell* Create(Engine engine = JSC);
std::string LoadModule(const std::string& name, HANDLE* library);
virtual bool RunScript(const std::string& scriptPath);
virtual bool RunShell();
void setModulePath(const std::vector<std::string>& modulePath) {
module_path = modulePath;
}
protected:
virtual bool InitializeEngine() = 0;
virtual bool ExecuteScript(const std::string& source, const std::string& scriptPath) = 0;
virtual bool DisposeEngine() = 0;
static std::string ReadFile(const std::string& fileName);
protected:
std::vector<HANDLE> loaded_modules;
std::vector<std::string> module_path;
};
#endif // JS_SHELL_H