void register_all_fygui(JSContext* cx, JSObject* obj) { // first, try to get the ns jsval nsval; JSObject *ns; JS_GetProperty(cx, obj, "fygui", &nsval); if (nsval == JSVAL_VOID) { ns = JS_NewObject(cx, NULL, NULL, NULL); nsval = OBJECT_TO_JSVAL(ns); JS_SetProperty(cx, obj, "fygui", &nsval); } else { JS_ValueToObject(cx, nsval, &ns); } obj = ns; js_register_fygui_FYPropCell(cx, obj); }
static JSBool jsg_resolve_prop(JSContext *cx, JSObject *obj, jsval id) { js_setting_group_t *jsg = JS_GetPrivate(cx, obj); const char *name; name = JSVAL_IS_STRING(id) ? JS_GetStringBytes(JSVAL_TO_STRING(id)) : NULL; if(name != NULL) { htsmsg_field_t *f; if((f = htsmsg_field_find(jsg->jsg_store, name)) != NULL) { jsval vp = jsval_from_htsmsgfield(cx, f); JS_SetProperty(cx, obj, name, &vp); } } return JS_TRUE; }
void register_all_PluginIAPJS(JSContext* cx, JSObject* obj) { // first, try to get the ns jsval nsval; JSObject *ns; JS_GetProperty(cx, obj, "sdkbox", &nsval); if (nsval == JSVAL_VOID) { ns = JS_NewObject(cx, NULL, NULL, NULL); nsval = OBJECT_TO_JSVAL(ns); JS_SetProperty(cx, obj, "sdkbox", &nsval); } else { JS_ValueToObject(cx, nsval, &ns); } obj = ns; js_register_PluginIAPJS_IAP(cx, obj); }
void smjs_init_globhist_interface(void) { jsval val; struct JSObject *globhist; if (!smjs_ctx || !smjs_elinks_object) return; globhist = smjs_get_globhist_object(); if (!globhist) return; val = OBJECT_TO_JSVAL(globhist); JS_SetProperty(smjs_ctx, smjs_elinks_object, "globhist", &val); }
void register_CocosPlayer(JSContext* cx, JSObject* obj) { // first, try to get the ns jsval nsval; JSObject *ns; JS_GetProperty(cx, obj, "cc", &nsval); if (nsval == JSVAL_VOID) { ns = JS_NewObject(cx, NULL, NULL, NULL); nsval = OBJECT_TO_JSVAL(ns); JS_SetProperty(cx, obj, "cc", &nsval); } else { JS_ValueToObject(cx, nsval, &ns); } obj = ns; JS_DefineFunction(cx, obj, "_cocosplayerLog", JS_cocosPlayerLog, 2, JSPROP_READONLY | JSPROP_PERMANENT); }
JSBool XMLGraph_Init(JSContext *cx, JSObject *obj, JSObject *parent_proto) { jsval v = JSVAL_NULL; JSObject *proto = JS_InitClass(cx, obj, parent_proto, &XMLGraph_class, XMLGraph, 1, xmlgraph_props, xmlgraph_funcs, NULL, NULL); if (!proto) return JS_FALSE; if (!JS_SetProperty(cx, proto, "nameBy", &v)) { JS_ReportError(cx, "failed to set XMLGraph.prototype.nameBy = null"); return JS_FALSE; } return JS_TRUE; }
void register_all_cocos2dx_spine(JSContext* cx, JSObject* obj) { // first, try to get the ns JS::RootedValue nsval(cx); JSObject *ns; JS_GetProperty(cx, obj, "sp", &nsval); if (nsval == JSVAL_VOID) { ns = JS_NewObject(cx, NULL, NULL, NULL); nsval = OBJECT_TO_JSVAL(ns); JS_SetProperty(cx, obj, "sp", nsval); } else { JS_ValueToObject(cx, nsval, &ns); } obj = ns; js_register_cocos2dx_spine_Skeleton(cx, obj); js_register_cocos2dx_spine_SkeletonAnimation(cx, obj); }
void register_all_jsb_iOSiapWrapper(JSContext* cx, JSObject* obj) { // first, try to get the ns jsval nsval; JSObject *ns; JS_GetProperty(cx, obj, "cc", &nsval); if (nsval == JSVAL_VOID) { ns = JS_NewObject(cx, NULL, NULL, NULL); nsval = OBJECT_TO_JSVAL(ns); JS_SetProperty(cx, obj, "cc", &nsval); } else { JS_ValueToObject(cx, nsval, &ns); } obj = ns; js_register_jsb_iOSiapWrapper_iOSiapWrapperCallBackClass(cx, obj); js_register_jsb_iOSiapWrapper_iOSiapWrapper(cx, obj); }
void register_facebook_js(JSContext* cx, JSObject* global){ jsval nsval; JSObject *facebookJsbObject; JS_GetProperty(cx, global, "FacebookJsb", &nsval); if (nsval == JSVAL_VOID) { facebookJsbObject = JS_NewObject(cx, NULL, NULL, NULL); nsval = OBJECT_TO_JSVAL(facebookJsbObject); JS_SetProperty(cx, global, "FacebookJsb", &nsval); } else JS_ValueToObject(cx, nsval, &facebookJsbObject); JS_DefineFunction(cx, facebookJsbObject, "login", JSB_Facebook_login, 2, JSPROP_READONLY | JSPROP_PERMANENT); JS_DefineFunction(cx, facebookJsbObject, "logout", JSB_Facebook_logout, 1, JSPROP_READONLY | JSPROP_PERMANENT); JS_DefineFunction(cx, facebookJsbObject, "getLoginStatus", JSB_Facebook_getLoginStatus, 2, JSPROP_READONLY | JSPROP_PERMANENT); JS_DefineFunction(cx, facebookJsbObject, "api", JSB_Facebook_api, 4, JSPROP_READONLY | JSPROP_PERMANENT); JS_DefineFunction(cx, facebookJsbObject, "ui", JSB_Facebook_ui, 2, JSPROP_READONLY | JSPROP_PERMANENT); }
static bool FillMyHashMap(JSContext* cx, MutableHandle<MyHashMap> map) { for (size_t i = 0; i < 10; ++i) { RootedObject obj(cx, JS_NewObject(cx, nullptr)); RootedValue val(cx, UndefinedValue()); // Construct a unique property name to ensure that the object creates a // new shape. char buffer[2]; buffer[0] = 'a' + i; buffer[1] = '\0'; if (!JS_SetProperty(cx, obj, buffer, val)) return false; if (!map.putNew(obj->as<NativeObject>().lastProperty(), obj)) return false; } return true; }
JSBool object_id_constructor( JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval ){ Convertor c( cx ); OID oid; if ( argc == 0 ){ oid.init(); } else { uassert( "object_id_constructor can't take more than 1 param" , argc == 1 ); oid.init( c.toString( argv[0] ) ); } jsval v = c.toval( oid.str().c_str() ); assert( JS_SetProperty( cx , obj , "str" , &v ) ); return JS_TRUE; }
virtual void onClose(WebSocket* ws) { js_proxy_t * p = jsb_get_native_proxy(ws); if (!p) return; JSContext* cx = ScriptingCore::getInstance()->getGlobalContext(); JSObject* jsobj = JS_NewObject(cx, NULL, NULL, NULL); jsval vp = c_string_to_jsval(cx, "close"); JS_SetProperty(cx, jsobj, "type", &vp); jsval args = OBJECT_TO_JSVAL(jsobj); ScriptingCore::getInstance()->executeFunctionWithOwner(OBJECT_TO_JSVAL(_JSDelegate), "onclose", 1, &args); js_proxy_t* jsproxy = jsb_get_js_proxy(p->obj); JS_RemoveObjectRoot(cx, &jsproxy->obj); jsb_remove_proxy(p, jsproxy); CC_SAFE_DELETE(ws); }
void register_all_PluginIAPJS(JSContext* cx, JSObject* obj) { // first, try to get the ns JS::RootedValue nsval(cx); JS::RootedObject ns(cx); JS_GetProperty(cx, obj, "sdkbox", &nsval); if (nsval == JSVAL_VOID) { ns = JS_NewObject(cx, NULL, NULL, NULL); nsval = OBJECT_TO_JSVAL(ns); JS_SetProperty(cx, obj, "sdkbox", nsval); } else { JS_ValueToObject(cx, nsval, &ns); } obj = ns; js_register_PluginIAPJS_IAP(cx, obj); sdkbox::setProjectType("js"); }
JSObject* DLLCALL js_CreateInternalJsObject(JSContext* cx, JSObject* parent, js_callback_t* cb, js_startup_t* startup) { JSObject* obj; if((obj = JS_DefineObject(cx, parent, "js", &js_internal_class, NULL ,JSPROP_ENUMERATE|JSPROP_READONLY))==NULL) return(NULL); if(!JS_SetPrivate(cx, obj, cb)) /* Store a pointer to js_callback_t */ return(NULL); if(startup!=NULL) { JSObject* load_path_list; jsval val; str_list_t load_path; if((load_path_list=JS_NewArrayObject(cx, 0, NULL))==NULL) return(NULL); val=OBJECT_TO_JSVAL(load_path_list); if(!JS_SetProperty(cx, obj, JAVASCRIPT_LOAD_PATH_LIST, &val)) return(NULL); if((load_path=strListSplitCopy(NULL, startup->load_path, ",")) != NULL) { JSString* js_str; unsigned i; for(i=0; load_path[i]!=NULL; i++) { if((js_str=JS_NewStringCopyZ(cx, load_path[i]))==NULL) break; val=STRING_TO_JSVAL(js_str); if(!JS_SetElement(cx, load_path_list, i, &val)) break; } strListFree(&load_path); } } #ifdef BUILD_JSDOCS js_DescribeSyncObject(cx,obj,"JavaScript engine internal control object",311); js_CreateArrayOfStrings(cx, obj, "_property_desc_list", prop_desc, JSPROP_READONLY); #endif return(obj); }
void register_pluginx_js_extensions(JSContext* cx, JSObject* global) { // first, try to get the ns JS::RootedValue nsval(cx); JS::RootedObject ns(cx); JS_GetProperty(cx, global, "plugin", &nsval); if (nsval == JSVAL_VOID) { ns = JS_NewObject(cx, NULL, NULL, NULL); nsval = OBJECT_TO_JSVAL(ns); JS_SetProperty(cx, global, "plugin", nsval); } else { JS_ValueToObject(cx, nsval, &ns); } JS_DefineFunction(cx, jsb_cocos2d_plugin_ProtocolIAP_prototype, "setListener", js_pluginx_ProtocolIAP_setResultListener, 1, JSPROP_READONLY | JSPROP_PERMANENT); JS_DefineFunction(cx, jsb_cocos2d_plugin_ProtocolIAP_prototype, "getListener", js_pluginx_ProtocolIAP_getResultListener, 0, JSPROP_READONLY | JSPROP_PERMANENT); JS_DefineFunction(cx, jsb_cocos2d_plugin_ProtocolIAP_prototype, "payForProduct", js_pluginx_ProtocolIAP_payForProduct, 0, JSPROP_READONLY | JSPROP_PERMANENT); JS_DefineFunction(cx, jsb_cocos2d_plugin_ProtocolAds_prototype, "setListener", js_pluginx_ProtocolAds_setAdsListener, 1, JSPROP_READONLY | JSPROP_PERMANENT); JS_DefineFunction(cx, jsb_cocos2d_plugin_ProtocolAds_prototype, "getListener", js_pluginx_ProtocolAds_getAdsListener, 0, JSPROP_READONLY | JSPROP_PERMANENT); JS_DefineFunction(cx, jsb_cocos2d_plugin_ProtocolShare_prototype, "setListener", js_pluginx_ProtocolShare_setResultListener, 1, JSPROP_READONLY | JSPROP_PERMANENT); JS_DefineFunction(cx, jsb_cocos2d_plugin_ProtocolShare_prototype, "getListener", js_pluginx_ProtocolShare_getResultListener, 0, JSPROP_READONLY | JSPROP_PERMANENT); JS_DefineFunction(cx, jsb_cocos2d_plugin_ProtocolShare_prototype, "share", js_pluginx_ProtocolShare_share, 0, JSPROP_READONLY | JSPROP_PERMANENT); JS_DefineFunction(cx, jsb_cocos2d_plugin_ProtocolSocial_prototype, "setListener", js_pluginx_ProtocolSocial_setListener, 1, JSPROP_READONLY | JSPROP_PERMANENT); JS_DefineFunction(cx, jsb_cocos2d_plugin_ProtocolSocial_prototype, "getListener", js_pluginx_ProtocolSocial_getListener, 0, JSPROP_READONLY | JSPROP_PERMANENT); JS_DefineFunction(cx, jsb_cocos2d_plugin_ProtocolSocial_prototype, "submitScore", js_pluginx_ProtocolSocial_submitScore, 0, JSPROP_READONLY | JSPROP_PERMANENT); JS_DefineFunction(cx, jsb_cocos2d_plugin_ProtocolSocial_prototype, "unlockAchievement", js_pluginx_ProtocolSocial_unlockAchievement, 0, JSPROP_READONLY | JSPROP_PERMANENT); JS_DefineFunction(cx, jsb_cocos2d_plugin_ProtocolUser_prototype, "setActionListener", js_pluginx_ProtocolUser_setActionListener, 1, JSPROP_READONLY | JSPROP_PERMANENT); JS_DefineFunction(cx, jsb_cocos2d_plugin_ProtocolUser_prototype, "getActionListener", js_pluginx_ProtocolUser_getActionListener, 0, JSPROP_READONLY | JSPROP_PERMANENT); JS_DefineFunction(cx, jsb_cocos2d_plugin_ProtocolUser_prototype, "login", js_pluginx_ProtocolUser_login, 0, JSPROP_READONLY | JSPROP_PERMANENT); JS_DefineFunction(cx, jsb_cocos2d_plugin_ProtocolUser_prototype, "logout", js_pluginx_ProtocolUser_logout, 0, JSPROP_READONLY | JSPROP_PERMANENT); JS_DefineFunction(cx, jsb_cocos2d_plugin_PluginProtocol_prototype, "callFuncWithParam", js_pluginx_PluginProtocol_callFuncWithParam, 1, JSPROP_READONLY | JSPROP_PERMANENT); JS_DefineFunction(cx, jsb_cocos2d_plugin_PluginProtocol_prototype, "callStringFuncWithParam", js_pluginx_PluginProtocol_callStringFuncWithParam, 1, JSPROP_READONLY | JSPROP_PERMANENT); JS_DefineFunction(cx, jsb_cocos2d_plugin_PluginProtocol_prototype, "callIntFuncWithParam", js_pluginx_PluginProtocol_callIntFuncWithParam, 1, JSPROP_READONLY | JSPROP_PERMANENT); JS_DefineFunction(cx, jsb_cocos2d_plugin_PluginProtocol_prototype, "callFloatFuncWithParam", js_pluginx_PluginProtocol_callFloatFuncWithParam, 1, JSPROP_READONLY | JSPROP_PERMANENT); JS_DefineFunction(cx, jsb_cocos2d_plugin_PluginProtocol_prototype, "callBoolFuncWithParam", js_pluginx_PluginProtocol_callBoolFuncWithParam, 1, JSPROP_READONLY | JSPROP_PERMANENT); JS_DefineFunction(cx, jsb_cocos2d_plugin_FacebookAgent_prototype, "login", js_pluginx_FacebookAgent_login, 0, JSPROP_READONLY | JSPROP_PERMANENT); JS_DefineFunction(cx, jsb_cocos2d_plugin_FacebookAgent_prototype, "_api", js_pluginx_FacebookAgent_api, 0, JSPROP_READONLY | JSPROP_PERMANENT); JS_DefineFunction(cx, jsb_cocos2d_plugin_FacebookAgent_prototype, "appRequest", js_pluginx_FacebookAgent_appRequest, 0, JSPROP_READONLY | JSPROP_PERMANENT); JS_DefineFunction(cx, jsb_cocos2d_plugin_FacebookAgent_prototype, "dialog", js_pluginx_FacebookAgent_dialog, 0, JSPROP_READONLY | JSPROP_PERMANENT); global = ns; js_register_pluginx_protocols_PluginParam(cx, global); }
static void try_to_chain_stack_trace(JSContext *src_context, JSContext *dst_context, jsval src_exc) { /* append current stack of dst_context to stack trace for src_exc. * we bail if anything goes wrong, just using the src_exc unmodified * in that case. */ jsval chained, src_stack, dst_stack, new_stack; JSString *new_stack_str; JS_BeginRequest(src_context); JS_BeginRequest(dst_context); if (!JSVAL_IS_OBJECT(src_exc)) goto out; // src_exc doesn't have a stack trace /* create a new exception in dst_context to get a stack trace */ gjs_throw_literal(dst_context, "Chained exception"); if (!(JS_GetPendingException(dst_context, &chained) && JSVAL_IS_OBJECT(chained))) goto out; // gjs_throw_literal didn't work?! JS_ClearPendingException(dst_context); /* get stack trace for src_exc and chained */ if (!(gjs_object_get_property(dst_context, JSVAL_TO_OBJECT(chained), "stack", &dst_stack) && JSVAL_IS_STRING(dst_stack))) goto out; // couldn't get chained stack if (!(gjs_object_get_property(src_context, JSVAL_TO_OBJECT(src_exc), "stack", &src_stack) && JSVAL_IS_STRING(src_stack))) goto out; // couldn't get source stack /* add chained exception's stack trace to src_exc */ new_stack_str = JS_ConcatStrings (dst_context, JSVAL_TO_STRING(src_stack), JSVAL_TO_STRING(dst_stack)); if (new_stack_str==NULL) goto out; // couldn't concatenate src and dst stacks?! new_stack = STRING_TO_JSVAL(new_stack_str); JS_SetProperty(dst_context, JSVAL_TO_OBJECT(src_exc), "stack", &new_stack); out: JS_EndRequest(dst_context); JS_EndRequest(src_context); }
void register_LoadUrlImage_js(JSContext* cx, JSObject* global) { JS::RootedValue nsval(cx); JS::RootedValue tmpval(cx); JS::RootedObject pJsbObject(cx); JS_GetProperty(cx, global, "LoadUrlImage", &nsval); if (nsval == JSVAL_VOID) { pJsbObject = JS_NewObject(cx, NULL, NULL, NULL); nsval = OBJECT_TO_JSVAL(global); JS_SetProperty(cx, global, "LoadUrlImage", nsval); } else { JS_ValueToObject(cx, nsval, &pJsbObject); } JS_DefineFunction(cx, global, "loadUrlImage", JSB_LoadUrlImage_loadUrlImage, 2, JSPROP_READONLY | JSPROP_PERMANENT); }
JSBool Output_flush (JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { JS_BeginRequest(cx); JS_EnterLocalRootScope(cx); jsval property; JS_GetProperty(cx, obj, "content", &property); FCGX_PutS(JS_GetStringBytes(JS_ValueToString(cx, property)), ((LCGIData*) JS_GetContextPrivate(cx))->cgi->out); property = JS_GetEmptyStringValue(cx); JS_SetProperty(cx, obj, "content", &property); JS_LeaveLocalRootScope(cx); JS_EndRequest(cx); return JS_TRUE; }
void register_pluginx_js_extensions(JSContext* cx, JSObject* obj) { // first, try to get the ns JS::RootedValue nsval(cx); JS::RootedObject ns(cx); JS_GetProperty(cx, obj, "plugin", &nsval); if (nsval == JSVAL_VOID) { ns = JS_NewObject(cx, NULL, NULL, NULL); nsval = OBJECT_TO_JSVAL(ns); JS_SetProperty(cx, obj, "plugin", nsval); } else { JS_ValueToObject(cx, nsval, &ns); } obj = ns; /* // first, try to get the ns JS::RootedValue nsval(cx); JSObject *ns; JS_GetProperty(cx, obj, "plugin", &nsval); if (nsval == JSVAL_VOID) { ns = JS_NewObject(cx, NULL, NULL, NULL); nsval = OBJECT_TO_JSVAL(ns); JS_SetProperty(cx, obj, "plugin", nsval); } else { JS_ValueToObject(cx, nsval, &ns); } */ JS_DefineFunction(cx, jsb_cocos2d_plugin_ProtocolIAP_prototype, "setResultListener", js_pluginx_ProtocolIAP_setResultListener, 1, JSPROP_READONLY | JSPROP_PERMANENT); JS_DefineFunction(cx, jsb_cocos2d_plugin_ProtocolAds_prototype, "setAdsListener", js_pluginx_ProtocolAds_setAdsListener, 1, JSPROP_READONLY | JSPROP_PERMANENT); JS_DefineFunction(cx, jsb_cocos2d_plugin_ProtocolShare_prototype, "setResultListener", js_pluginx_ProtocolShare_setResultListener, 1, JSPROP_READONLY | JSPROP_PERMANENT); JS_DefineFunction(cx, jsb_cocos2d_plugin_ProtocolSocial_prototype, "setListener", js_pluginx_ProtocolSocial_setListener, 1, JSPROP_READONLY | JSPROP_PERMANENT); JS_DefineFunction(cx, jsb_cocos2d_plugin_ProtocolUser_prototype, "setActionListener", js_pluginx_ProtocolUser_setActionListener, 1, JSPROP_READONLY | JSPROP_PERMANENT); JS_DefineFunction(cx, jsb_cocos2d_plugin_PluginProtocol_prototype, "callFuncWithParam", js_pluginx_PluginProtocol_callFuncWithParam, 1, JSPROP_READONLY | JSPROP_PERMANENT); JS_DefineFunction(cx, jsb_cocos2d_plugin_PluginProtocol_prototype, "callStringFuncWithParam", js_pluginx_PluginProtocol_callStringFuncWithParam, 1, JSPROP_READONLY | JSPROP_PERMANENT); JS_DefineFunction(cx, jsb_cocos2d_plugin_PluginProtocol_prototype, "callIntFuncWithParam", js_pluginx_PluginProtocol_callIntFuncWithParam, 1, JSPROP_READONLY | JSPROP_PERMANENT); JS_DefineFunction(cx, jsb_cocos2d_plugin_PluginProtocol_prototype, "callFloatFuncWithParam", js_pluginx_PluginProtocol_callFloatFuncWithParam, 1, JSPROP_READONLY | JSPROP_PERMANENT); JS_DefineFunction(cx, jsb_cocos2d_plugin_PluginProtocol_prototype, "callBoolFuncWithParam", js_pluginx_PluginProtocol_callBoolFuncWithParam, 1, JSPROP_READONLY | JSPROP_PERMANENT); obj = ns; js_register_pluginx_protocols_PluginParam(cx, obj); }
ScriptingCore::ScriptingCore() { /* Create the JSRuntime. */ this->mJSRuntime = JS_NewRuntime(8L * 1024L * 1024L); if (this->mJSRuntime == NULL) { LOG_D("Could not create JSRuntime!"); } /* Create the JSContext. */ this->mJSContext = JS_NewContext(this->mJSRuntime, 8192); if (this->mJSContext == NULL) { LOG_D("Could not create JSContext!"); } /* Set flags. */ JS_SetOptions(this->mJSContext, JSOPTION_VAROBJFIX); JS_SetVersion(this->mJSContext, JSVERSION_LATEST); JS_SetErrorReporter(this->mJSContext, reportError); /* Create the global object in a new compartment. */ this->mGlobal = JS_NewCompartmentAndGlobalObject(this->mJSContext, &global_class, NULL); if (this->mGlobal == NULL) { LOG_D("Could not create global!"); } if (!JS_InitStandardClasses(this->mJSContext, this->mGlobal)) { LOG_D("Could not initialize standard classes!"); } /* Create the AndEngine namespace. */ JSObject* andengineNamespace = JS_NewObject(this->mJSContext, NULL, NULL, NULL); jsval andengineNamespaceVal = OBJECT_TO_JSVAL(andengineNamespace); JS_SetProperty(this->mJSContext, this->mGlobal, "andengine", &andengineNamespaceVal); /* Register AndEngine classes. */ S_Entity::jsCreateClass(this->mJSContext, andengineNamespace, "Entity"); // S_CCSize::jsCreateClass(this->mJSContext, andengineNamespace, "Size"); // S_CCRect::jsCreateClass(this->mJSContext, andengineNamespace, "Rect"); /* Register some global functions. */ // JS_DefineFunction(this->mJSContext, andengineNamespace, "log", ScriptingCore::log, 0, JSPROP_READONLY | JSPROP_PERMANENT); // JS_DefineFunction(this->mJSContext, andengineNamespace, "forceGC", ScriptingCore::forceGC, 0, JSPROP_READONLY | JSPROP_PERMANENT); }
int add_body_stream(bfd_t *body_stream) { jsval smtpClient, bodyStream; JSObject *global; global = JS_GetGlobalForScopeChain(js_context); // Get smtpClient if (!JS_GetProperty(js_context, global, "smtpClient", &smtpClient)) { return -1; } bodyStream = PRIVATE_TO_JSVAL(body_stream); // Add path property if (!JS_SetProperty(js_context, JSVAL_TO_OBJECT(smtpClient), "bodyStream", &bodyStream)) { return -1; } return 0; }
void register_CCBuilderReader(JSContext *cx, JSObject *obj) { jsval nsval; JSObject *ns; JS_GetProperty(cx, obj, "cc", &nsval); if (nsval == JSVAL_VOID) { ns = JS_NewObject(cx, NULL, NULL, NULL); nsval = OBJECT_TO_JSVAL(ns); JS_SetProperty(cx, obj, "cc", &nsval); } else { JS_ValueToObject(cx, nsval, &ns); } obj = ns; JSObject *tmpObj = JSVAL_TO_OBJECT(anonEvaluate(cx, obj, "(function () { return cc._Reader; })()")); JS_DefineFunction(cx, tmpObj, "create", js_CocosBuilder_create, 2, JSPROP_READONLY | JSPROP_PERMANENT); JS_DefineFunction(cx, tmpObj, "loadScene", js_cocos2dx_CCBReader_createSceneWithNodeGraphFromFile, 2, JSPROP_READONLY | JSPROP_PERMANENT); JS_DefineFunction(cx, jsb_CCBReader_prototype, "load", js_cocos2dx_CCBReader_readNodeGraphFromFile, 2, JSPROP_READONLY | JSPROP_PERMANENT); JS_DefineFunction(cx, jsb_CCBAnimationManager_prototype, "setCompletedAnimationCallback", js_cocos2dx_CCBAnimationManager_animationCompleteCallback, 2, JSPROP_READONLY | JSPROP_PERMANENT); }
CharacterNetwork::~CharacterNetwork() { const char* id = getNetworkId(); printf("~CharacterNetwork %s\n", id); #if defined(COCOS2D_JAVASCRIPT) && ISCLIENT == 1 if (!_native) { jsval jsCharacterNetwork = CharacterNetwork::getNetworkObjectById(id); jsval networkObjects = CharacterNetwork::getNetworkObjects(); if (jsCharacterNetwork != JSVAL_VOID) { //printf("set null\n"); jsCharacterNetwork.setNull(); JS_SetProperty(_cx(), &networkObjects.toObject(), id, &jsCharacterNetwork); } } #endif }
void populate_javascript_object(JSContext *context, JSObject *obj, PyObject *dict) { char *propname; PyObject *key, *value; Py_ssize_t pos = 0; while (PyDict_Next(dict, &pos, &key, &value)) { PyObject *str = NULL; propname = NULL; if (PyString_Check(key)) { propname = PyString_AsString(key); } else if (PyUnicode_Check(key)) { PyObject *str = PyUnicode_AsUTF8String(key); propname = PyString_AsString(str); Py_DECREF(str); } if (propname != NULL) { jsval item = to_javascript_object(context, value); JS_SetProperty(context, obj, propname, &item); } } }
static JSObject * add_exports_property_to_module_scope (JSContext *cx, JSObject *scope) { JSObject *exports; jsval value; JSAutoCompartment ac(cx, scope); /* create the 'exports' object, into which API will be added */ exports = JS_NewObject (cx, NULL, NULL, NULL); g_assert (exports != NULL); /* add 'exports' object as property of scope */ value = OBJECT_TO_JSVAL (exports); g_assert (JS_SetProperty (cx, scope, "exports", &value)); /* make 'exports' a permanent and read-only property of scope */ seal_object_property (cx, scope, "exports"); return exports; }
CScriptVal ICmpFootprint::GetShape_wrapper() { EShape shape; entity_pos_t size0, size1, height; GetShape(shape, size0, size1, height); JSContext* cx = GetSimContext().GetScriptInterface().GetContext(); JSObject* obj = JS_NewObject(cx, NULL, NULL, NULL); if (!obj) return JSVAL_VOID; if (shape == CIRCLE) { JS::RootedValue ptype(cx); JS::RootedValue pradius(cx); JS::RootedValue pheight(cx); ScriptInterface::ToJSVal<std::string>(cx, ptype.get(), "circle"); ScriptInterface::ToJSVal(cx, pradius.get(), size0); ScriptInterface::ToJSVal(cx, pheight.get(), height); JS_SetProperty(cx, obj, "type", ptype.address()); JS_SetProperty(cx, obj, "radius", pradius.address()); JS_SetProperty(cx, obj, "height", pheight.address()); } else { JS::RootedValue ptype(cx); JS::RootedValue pwidth(cx); JS::RootedValue pdepth(cx); JS::RootedValue pheight(cx); ScriptInterface::ToJSVal<std::string>(cx, ptype.get(), "square"); ScriptInterface::ToJSVal(cx, pwidth.get(), size0); ScriptInterface::ToJSVal(cx, pdepth.get(), size1); ScriptInterface::ToJSVal(cx, pheight.get(), height); JS_SetProperty(cx, obj, "type", ptype.address()); JS_SetProperty(cx, obj, "width", pwidth.address()); JS_SetProperty(cx, obj, "depth", pdepth.address()); JS_SetProperty(cx, obj, "height", pheight.address()); } return OBJECT_TO_JSVAL(obj); }
static JSBool js_queryStringSplit(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { const char *str; char *s, *s0; JSObject *robj = JS_NewObject(cx, NULL, NULL, NULL); if (!JS_ConvertArguments(cx, argc, argv, "s", &str)) return JS_FALSE; s0 = s = strdup(str); while(s) { char *k = s; char *v = strchr(s, '='); if(v == NULL) break; *v++ = 0; if((s = strchr(v, '&')) != NULL) *s++ = 0; k = strdup(k); v = strdup(v); http_deescape(k); http_deescape(v); jsval val = STRING_TO_JSVAL(JS_NewString(cx, v, strlen(v))); JS_SetProperty(cx, robj, k, &val); free(k); } free(s0); *rval = OBJECT_TO_JSVAL(robj); return JS_TRUE; }
JSBool js_createSettings(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { const char *title; const char *icon = NULL; const char *desc = NULL; char spath[URL_MAX]; if(!JS_ConvertArguments(cx, argc, argv, "s/ss", &title, &icon, &desc)) return JS_FALSE; js_plugin_t *jsp = JS_GetPrivate(cx, obj); snprintf(spath, sizeof(spath), "plugins/%s", jsp->jsp_id); js_setting_group_t *jsg = calloc(1, sizeof(js_setting_group_t)); JSObject *robj; jsg->jsg_refcount = 2; LIST_INSERT_HEAD(&jsp->jsp_setting_groups, jsg, jsg_link); jsg->jsg_frozen = 1; jsg->jsg_spath = strdup(spath); jsg->jsg_store = htsmsg_store_load(spath) ?: htsmsg_create_map(); jsg->jsg_root_owner = 1; jsg->jsg_root = prop_ref_inc(settings_add_dir_cstr(gconf.settings_apps, title, NULL, icon, desc, NULL)); robj = JS_NewObjectWithGivenProto(cx, &setting_group_class, NULL, obj); jsg->jsg_val = *rval = OBJECT_TO_JSVAL(robj); JS_AddNamedRoot(cx, &jsg->jsg_val, "jsg"); JS_SetPrivate(cx, robj, jsg); JS_DefineFunctions(cx, robj, setting_functions); jsval val = OBJECT_TO_JSVAL(js_object_from_prop(cx, jsg->jsg_root)); JS_SetProperty(cx, robj, "properties", &val); jsg->jsg_frozen = 0; return JS_TRUE; }
JSBool Output_content_set (JSContext *cx, JSObject *obj, jsval idval, jsval *vp) { JS_BeginRequest(cx); JS_EnterLocalRootScope(cx); jsval property; int limit; JSBool buffered; JSString* string; JS_GetProperty(cx, obj, "limit", &property); JS_ValueToInt32(cx, property, &limit); JS_GetProperty(cx, obj, "buffered", &property); JS_ValueToBoolean(cx, property, &buffered); string = JS_ValueToString(cx, *vp); if (!buffered && JS_GetStringLength(string) > limit) { if (!JSVAL_TO_BOOLEAN(JS_EVAL(cx, "Headers.sent"))) { JS_EVAL(cx, "Headers.send()"); } FCGX_Stream* out = ((LCGIData*) JS_GetContextPrivate(cx))->cgi->out; char* cString = JS_GetStringBytes(string); char size[300] = {NULL}; sprintf(size, "%x", strlen(cString)); FCGX_FPrintF(out, "%s\r\n%s\r\n", size, cString); property = JS_GetEmptyStringValue(cx); JS_SetProperty(cx, obj, "content", &property); } JS_LeaveLocalRootScope(cx); JS_EndRequest(cx); return JS_TRUE; }
int set_envelope_sender(jsval *smtpPath) { jsval session, smtpServer; JSObject *global; global = JS_GetGlobalForScopeChain(js_context); // Get smtpServer if (!JS_GetProperty(js_context, global, "smtpServer", &smtpServer)) { return -1; } // Get session if (!JS_GetProperty(js_context, JSVAL_TO_OBJECT(smtpServer), "session", &session)) { return -1; } // Set session.envelopeSender if (!JS_SetProperty(js_context, JSVAL_TO_OBJECT(session), "envelopeSender", smtpPath)) { return -1; } return 0; }