diff options
author | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2013-02-08 12:26:42 (GMT) |
---|---|---|
committer | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2013-02-08 12:26:42 (GMT) |
commit | 71a3ca4fd78d7a9cca844e81f29f48b9c36bd4c7 (patch) | |
tree | 57a294052ce41ed131f458d4fb083fce3b743ef4 /src/uscxml/plugins/datamodel/ecmascript/v8/V8DataModel.cpp | |
parent | 275bf3fd017ca27c021d4c10cc9d3d82fff13922 (diff) | |
download | uscxml-71a3ca4fd78d7a9cca844e81f29f48b9c36bd4c7.zip uscxml-71a3ca4fd78d7a9cca844e81f29f48b9c36bd4c7.tar.gz uscxml-71a3ca4fd78d7a9cca844e81f29f48b9c36bd4c7.tar.bz2 |
Fixed history
Diffstat (limited to 'src/uscxml/plugins/datamodel/ecmascript/v8/V8DataModel.cpp')
-rw-r--r-- | src/uscxml/plugins/datamodel/ecmascript/v8/V8DataModel.cpp | 8 |
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); } |