diff options
author | Stefan Radomski <github@mintwerk.de> | 2017-01-13 16:47:44 (GMT) |
---|---|---|
committer | Stefan Radomski <github@mintwerk.de> | 2017-01-13 16:47:44 (GMT) |
commit | 4f6cbe9e7aec2b4a6c8f286f9097abfb011a6235 (patch) | |
tree | 8c023473bb342780ddf51a893d18369f1319bb5c /src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore | |
parent | 0aa0fe08dc308c94379c47d0bf9745e341cb4c81 (diff) | |
download | uscxml-4f6cbe9e7aec2b4a6c8f286f9097abfb011a6235.zip uscxml-4f6cbe9e7aec2b4a6c8f286f9097abfb011a6235.tar.gz uscxml-4f6cbe9e7aec2b4a6c8f286f9097abfb011a6235.tar.bz2 |
First support for serialization and some bug fixes for DOM per data.src
Diffstat (limited to 'src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore')
-rw-r--r-- | src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/JSCDataModel.cpp | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/JSCDataModel.cpp b/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/JSCDataModel.cpp index aae0111..22e8ccc 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/JSCDataModel.cpp +++ b/src/uscxml/plugins/datamodel/ecmascript/JavaScriptCore/JSCDataModel.cpp @@ -395,8 +395,14 @@ void JSCDataModel::setEvent(const Event& event) { } Data JSCDataModel::evalAsData(const std::string& content) { - JSValueRef result = evalAsValue(content); - return getValueAsData(result); + try { + JSValueRef result = evalAsValue(content); + return getValueAsData(result); + } catch (ErrorEvent e) { + // test453 vs test554 + throw e; +// return Data(content, Data::INTERPRETED); + } } Data JSCDataModel::getAsData(const std::string& content) { @@ -593,7 +599,7 @@ void JSCDataModel::setForeach(const std::string& item, const std::string& index, uint32_t iteration) { if (!isDeclared(item)) { - assign(item, Data()); + assign(item, Data("null", Data::INTERPRETED)); } // assign array element to item std::stringstream ss; @@ -710,7 +716,11 @@ void JSCDataModel::assign(const std::string& location, const Data& data) { void JSCDataModel::init(const std::string& location, const Data& data) { try { - assign(location, data); + if (data.empty()) { + assign(location, Data("null", Data::INTERPRETED)); + } else { + assign(location, data); + } } catch (ErrorEvent e) { // test 277 evalAsValue(location + " = undefined", true); |