32 LocalVar<JsObject> obj = UnsafeJsCast<JsObject>(except);
33 LocalVar<JsValue> message_member =
GetMemberRaw(obj,
"message");
36 LocalVar<JsValue> name_member =
GetMemberRaw(obj,
"name");
40 return Error(message);
44 LocalVar<JsValue> category =
GetMemberRaw(obj,
"category");
50 LocalVar<JsValue> severity_val =
GetMemberRaw(obj,
"severity");
68 const std::string&
name, std::function<
void(
const Error&)> on_error,
69 std::function<
void(Handle<JsObject> event)> handler)
const {
73 LocalVar<JsValue> event_val =
ToJsValue(event);
79 LocalVar<JsObject> event_obj = UnsafeJsCast<JsObject>(event_val);
82 LocalVar<JsFunction> callback_js =
90 const std::string& name,
int argc,
91 LocalVar<JsValue>* argv,
92 LocalVar<JsValue>* result) {
95 return Error(
"The member '" + name +
"' is not a function.");
98 LocalVar<JsValue> result_or_except;
99 LocalVar<JsFunction> member_func = UnsafeJsCast<JsFunction>(member);
100 if (!
InvokeMethod(member_func, that, argc, argv, &result_or_except)) {
105 *result = result_or_except;
ReturnVal< JsFunction > CreateStaticFunction(const std::string &target, const std::string &name, Func &&callback)
typename AsyncResults< Ret >::variant_type variant_type
bool IsObject(Handle< JsValue > value)
bool IsNullOrUndefined(Handle< JsValue > value)
bool InvokeMethod(Handle< JsFunction > method, Handle< JsObject > that, int argc, LocalVar< JsValue > *argv, LocalVar< JsValue > *result_or_except)
ReturnVal< JsValue > ToJsValue(T &&source)
Global< JsObject > object_
static Converter< void >::variant_type CallMemberFunction(Handle< JsObject > that, const std::string &name, int argc, LocalVar< JsValue > *argv, LocalVar< JsValue > *result)
ReturnVal< JsValue > RawToJsValue(Handle< T > source)
proto::ValueType GetValueType(Handle< JsValue > value)
double NumberFromValue(Handle< JsValue > value)
Converter< void >::variant_type AttachEventListener(const std::string &name, std::function< void(const Error &)> on_error, std::function< void(Handle< JsObject > event)> handler) const
std::string ConvertToString(Handle< JsValue > value)
static Error ConvertError(Handle< JsValue > except)
void Init(Handle< JsObject > object)
ReturnVal< JsValue > GetMemberRaw(Handle< JsObject > object, const std::string &name, LocalVar< JsValue > *exception=nullptr)