#include <JavaScriptCore/JSBase.h>
#endif
-#include <apr_pools.h>
+// XXX: does _assert really need this?
+#include <errno.h>
+
#include "Standard.hpp"
+class CYPool;
+
struct CYException {
virtual ~CYException() {
}
- virtual const char *PoolCString(apr_pool_t *pool) const = 0;
+ virtual const char *PoolCString(CYPool &pool) const = 0;
#ifdef CY_EXECUTE
virtual JSValueRef CastJSValue(JSContextRef context) const = 0;
#endif
_value; \
})
+struct CYJSException {
+ JSContextRef context_;
+ JSValueRef value_;
+
+ CYJSException(JSContextRef context) :
+ context_(context),
+ value_(NULL)
+ {
+ }
+
+ ~CYJSException() {
+ CYThrow(context_, value_);
+ }
+
+ operator JSValueRef *() {
+ return &value_;
+ }
+};
+
+#define _jsccall(code, args...) ({ \
+ CYJSException _error(context); \
+ (code)(args, _error); \
+})
+
#endif/*CYCRIPT_ERROR_HPP*/