diff options
author | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2013-10-27 20:26:07 (GMT) |
---|---|---|
committer | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2013-10-27 20:26:07 (GMT) |
commit | 0a9c4c2e8f10de0323503fd5f2b11f31314b380c (patch) | |
tree | 2d5f6c0659df463b103fe376af72ce5ab173b5cf /src/uscxml/plugins/datamodel/ecmascript/v8 | |
parent | 1e42b29439d247598d58aac10f62c77cf2f31f12 (diff) | |
download | uscxml-0a9c4c2e8f10de0323503fd5f2b11f31314b380c.zip uscxml-0a9c4c2e8f10de0323503fd5f2b11f31314b380c.tar.gz uscxml-0a9c4c2e8f10de0323503fd5f2b11f31314b380c.tar.bz2 |
Added XML node to DataModel::evalAsBool signature to enable script caching
Diffstat (limited to 'src/uscxml/plugins/datamodel/ecmascript/v8')
-rw-r--r-- | src/uscxml/plugins/datamodel/ecmascript/v8/V8DOM.h | 8 | ||||
-rw-r--r-- | src/uscxml/plugins/datamodel/ecmascript/v8/V8DataModel.cpp | 4 | ||||
-rw-r--r-- | src/uscxml/plugins/datamodel/ecmascript/v8/V8DataModel.h | 1 |
3 files changed, 10 insertions, 3 deletions
diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/V8DOM.h b/src/uscxml/plugins/datamodel/ecmascript/v8/V8DOM.h index 2fa5b81..7030469 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/V8DOM.h +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/V8DOM.h @@ -60,12 +60,14 @@ public: else if(!data->IsExternal()) return NULL; else - return static_cast<T *>(v8::External::Unwrap(data)); + return v8::External::Cast(*data)->Value(); +// return static_cast<T *>(v8::External::Unwrap(data)); return NULL; } static v8::Local<v8::External> toExternal(void* pointer) { - v8::HandleScope scope; - return scope.Close(v8::External::New(pointer)); +// v8::HandleScope scope; +// return scope.Close(v8::External::New(pointer)); + return v8::External::New(pointer); } Arabica::XPath::XPath<std::string>* xpath; diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/V8DataModel.cpp b/src/uscxml/plugins/datamodel/ecmascript/v8/V8DataModel.cpp index a0de760..1037802 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/V8DataModel.cpp +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/V8DataModel.cpp @@ -518,6 +518,10 @@ bool V8DataModel::isDeclared(const std::string& expr) { } bool V8DataModel::evalAsBool(const std::string& expr) { + return evalAsBool(Arabica::DOM::Node<std::string>(), expr); +} + +bool V8DataModel::evalAsBool(const Arabica::DOM::Node<std::string>& node, const std::string& expr) { v8::Locker locker; v8::HandleScope handleScope; v8::Context::Scope contextScope(_contexts.back()); diff --git a/src/uscxml/plugins/datamodel/ecmascript/v8/V8DataModel.h b/src/uscxml/plugins/datamodel/ecmascript/v8/V8DataModel.h index 17ca7bc..0a64a2e 100644 --- a/src/uscxml/plugins/datamodel/ecmascript/v8/V8DataModel.h +++ b/src/uscxml/plugins/datamodel/ecmascript/v8/V8DataModel.h @@ -88,6 +88,7 @@ public: virtual bool isDeclared(const std::string& expr); virtual std::string evalAsString(const std::string& expr); + virtual bool evalAsBool(const Arabica::DOM::Node<std::string>& node, const std::string& expr); virtual bool evalAsBool(const std::string& expr); virtual double evalAsNumber(const std::string& expr); |