Refactored javascript shell implementation to support JSC and v8.

Also changed configuration in examples Makefile.in to allow switching modes.

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/oliverb-javascript-v8@13783 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Oliver Buchtala 2012-09-08 01:03:42 +00:00
commit 10dc758cad
6 changed files with 632 additions and 200 deletions

View file

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