summaryrefslogtreecommitdiffstats
path: root/src/uscxml/plugins/datamodel/ecmascript/v8
diff options
context:
space:
mode:
authorStefan Radomski <radomski@tk.informatik.tu-darmstadt.de>2013-02-08 12:26:42 (GMT)
committerStefan Radomski <radomski@tk.informatik.tu-darmstadt.de>2013-02-08 12:26:42 (GMT)
commit71a3ca4fd78d7a9cca844e81f29f48b9c36bd4c7 (patch)
tree57a294052ce41ed131f458d4fb083fce3b743ef4 /src/uscxml/plugins/datamodel/ecmascript/v8
parent275bf3fd017ca27c021d4c10cc9d3d82fff13922 (diff)
downloaduscxml-71a3ca4fd78d7a9cca844e81f29f48b9c36bd4c7.zip
uscxml-71a3ca4fd78d7a9cca844e81f29f48b9c36bd4c7.tar.gz
uscxml-71a3ca4fd78d7a9cca844e81f29f48b9c36bd4c7.tar.bz2
Fixed history
Diffstat (limited to 'src/uscxml/plugins/datamodel/ecmascript/v8')
-rw-r--r--src/uscxml/plugins/datamodel/ecmascript/v8/V8DataModel.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/V8DataModel.cpp b/src/uscxml/plugins/datamodel/ecmascript/v8/V8DataModel.cpp
index 9f04670..d8a3c8d 100644
--- a/src/uscxml/plugins/datamodel/ecmascript/v8/V8DataModel.cpp
+++ b/src/uscxml/plugins/datamodel/ecmascript/v8/V8DataModel.cpp
@@ -63,6 +63,8 @@ boost::shared_ptr<DataModelImpl> V8DataModel::create(Interpreter* interpreter) {
dm->setName(interpreter->getName());
dm->setSessionId(interpreter->getSessionId());
dm->eval("_ioprocessors = {};");
+ dm->eval("_invokers = {};");
+ dm->eval("_x = {};");
return dm;
}
@@ -183,7 +185,7 @@ Data V8DataModel::getValueAsData(const v8::Handle<v8::Value>& value) {
} else if(value->IsUint32()) {
LOG(ERROR) << "IsUint32 is unimplemented" << std::endl;
} else if(value->IsUndefined()) {
- LOG(ERROR) << "IsUndefined is unimplemented" << std::endl;
+ data.atom = "undefined";
}
return data;
}
@@ -269,6 +271,10 @@ std::string V8DataModel::evalAsString(const std::string& expr) {
v8::HandleScope handleScope;
v8::Context::Scope contextScope(_contexts.back());
v8::Handle<v8::Value> result = evalAsValue(expr);
+ if (result->IsObject()) {
+ Data data = getValueAsData(result);
+ return toStr(data);
+ }
v8::String::AsciiValue data(result->ToString());
return std::string(*data);
}