bool ScriptObject::set(const char* name, long value) { JSLock lock(SilenceAssertionsOnly); PutPropertySlot slot; jsObject()->put(m_scriptState, Identifier(m_scriptState, name), jsNumber(m_scriptState, value), slot); return handleException(m_scriptState); }
bool ScriptObject::set(const String& name, const String& value) { JSLock lock(SilenceAssertionsOnly); PutPropertySlot slot; jsObject()->put(m_scriptState, Identifier(m_scriptState, stringToUString(name)), jsString(m_scriptState, stringToUString(value)), slot); return handleException(m_scriptState); }
bool ScriptObject::set(const char* name, const ScriptObject& value) { if (value.scriptState() != m_scriptState) { ASSERT_NOT_REACHED(); return false; } JSLock lock(SilenceAssertionsOnly); PutPropertySlot slot; jsObject()->put(m_scriptState, Identifier(m_scriptState, name), value.jsObject(), slot); return handleException(m_scriptState); }
void WebListener::executeFunction(const he::String& object, const he::String& method, const Awesomium::JSArray& args) { // global js object for global functions he::String objName("window"); Awesomium::WebString aweMethod = Awesomium::WSLit(method.c_str()); if (object != "window" && object != "") { objName = object; // check if jsobject already exists auto it(std::find_if(m_Objects.cbegin(), m_Objects.cend(), [&objName](JSObject* obj) { return obj->getObjectName() == objName; })); bool objectExists(it != m_Objects.cend()); // create new js object if it doesn't already exists if (objectExists == false) { Awesomium::JSValue val = m_WebView->CreateGlobalJavascriptObject( Awesomium::WSLit(objName.c_str())); Awesomium::JSObject& obj = val.ToObject(); JSObject* jsObject(HENew(JSObject)(obj, objName)); m_Objects.add(jsObject); jsObject->executeFunction(aweMethod, args); } else { (*it)->executeFunction(aweMethod, args); }; } else { Awesomium::JSValue window( m_WebView->ExecuteJavascriptWithResult( Awesomium::WSLit("window"), Awesomium::WSLit(""))); Awesomium::JSObject& obj = window.ToObject(); obj.Invoke(aweMethod, args); } }