summaryrefslogtreecommitdiff
path: root/src/plugins/mozjs/MozJsScriptEngine.hpp
diff options
context:
space:
mode:
authorAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2014-10-26 23:51:44 +0000
committerandreas <andreas@daaaf23c-2e50-4459-9457-1e69db5a47bf>2014-10-26 23:51:44 +0000
commit7ea06d81b263d23bbe3cb5a4480e63857cb36f0f (patch)
tree6faa2dbc88cb787b1383077b17da0dc17bdc3c57 /src/plugins/mozjs/MozJsScriptEngine.hpp
parenta093d01e6a9b3dd8974a6a6d26706ed73a9c6217 (diff)
implemented setting/getting host variables, including host functions but not yet host objects
git-svn-id: file:///var/local/svn/basicwriter@81 daaaf23c-2e50-4459-9457-1e69db5a47bf
Diffstat (limited to 'src/plugins/mozjs/MozJsScriptEngine.hpp')
-rw-r--r--src/plugins/mozjs/MozJsScriptEngine.hpp31
1 files changed, 20 insertions, 11 deletions
diff --git a/src/plugins/mozjs/MozJsScriptEngine.hpp b/src/plugins/mozjs/MozJsScriptEngine.hpp
index f98c871..02797bc 100644
--- a/src/plugins/mozjs/MozJsScriptEngine.hpp
+++ b/src/plugins/mozjs/MozJsScriptEngine.hpp
@@ -51,7 +51,8 @@ private:
JS::RootedObject *parent;
public:
- MozJsScriptEngineFunction(MozJsScriptEngineScope &scope, JS::Value &fun, JSObject *parent);
+ MozJsScriptEngineFunction(MozJsScriptEngineScope &scope, JS::Value &fun,
+ JSObject *parent);
~MozJsScriptEngineFunction();
@@ -61,8 +62,7 @@ public:
};
class MozJsScriptEngineScope : public ScriptEngineScope {
-
-friend MozJsScriptEngineFunction;
+ friend MozJsScriptEngineFunction;
private:
JSRuntime *rt;
@@ -72,6 +72,19 @@ private:
void handleErr(bool ok = false);
+protected:
+ Variant doRun(const std::string &code) override;
+ void doSetVariable(const std::string &name, const Variant &var,
+ bool constant) override;
+ Variant doGetVariable(const std::string &name) override;
+
+public:
+ MozJsScriptEngineScope(JSRuntime *rt);
+
+ ~MozJsScriptEngineScope() override;
+
+ /* JS -> Host */
+
Variant arrayToVariant(JSObject *obj);
Variant objectToVariant(JSObject *obj);
@@ -82,16 +95,12 @@ private:
std::string toString(JSString *str);
-protected:
- Variant doRun(const std::string &code) override;
- void doSetVariable(const std::string &name, const Variant &val,
- bool constant) override;
- Variant doGetVariable(const std::string &name) override;
+ /* Host -> JS */
-public:
- MozJsScriptEngineScope(JSRuntime *rt);
+ void variantToValue(const Variant &var, JS::RootedValue &val);
- ~MozJsScriptEngineScope() override;
+ void setObjectProperty(JS::RootedObject &obj, const std::string &name,
+ const Variant &var, bool constant);
};
class MozJsScriptEngine : public ScriptEngine {