本文整理汇总了C++中JS_ARGV函数的典型用法代码示例。如果您正苦于以下问题:C++ JS_ARGV函数的具体用法?C++ JS_ARGV怎么用?C++ JS_ARGV使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了JS_ARGV函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: MessageCommon
static JSBool
MessageCommon(JSContext* cx, uintN argc, jsval* vp,
MessageResult* result)
{
if (argc < 1) {
JS_ReportError(cx, "Message requires a name, at least");
return JS_FALSE;
}
jsval* argv = JS_ARGV(cx, vp);
JSString* msgNameStr = JS_ValueToString(cx, argv[0]);
if (!msgNameStr) {
JS_ReportError(cx, "Could not convert value to string");
return JS_FALSE;
}
size_t length;
const jschar* chars = JS_GetStringCharsAndLength(cx, msgNameStr, &length);
if (!chars)
return JS_FALSE;
result->msgName.Assign(chars, length);
result->data.Clear();
if (!result->data.SetCapacity(argc)) {
JS_ReportOutOfMemory(cx);
return JS_FALSE;
}
for (uintN i = 1; i < argc; ++i) {
Variant* vp = result->data.AppendElement();
if (!JetpackActorCommon::jsval_to_Variant(cx, argv[i], vp)) {
JS_ReportError(cx, "Invalid message argument at position %d", i);
return JS_FALSE;
}
}
return JS_TRUE;
}
示例2: js_cocos2dx_CCMenuItemImage_create
JSBool js_cocos2dx_CCMenuItemImage_create(JSContext *cx, uint32_t argc, jsval *vp)
{
if (argc >= 2) {
jsval *argv = JS_ARGV(cx, vp);
const char *arg0; do { JSString *tmp = JS_ValueToString(cx, argv[0]); arg0 = JS_EncodeString(cx, tmp); } while (0);
const char *arg1; do { JSString *tmp = JS_ValueToString(cx, argv[1]); arg1 = JS_EncodeString(cx, tmp); } while (0);
const char *arg2 = NULL;
int last = 2;
if (JSVAL_IS_STRING(argv[2])) {
do { JSString *tmp = JS_ValueToString(cx, argv[2]); arg2 = JS_EncodeString(cx, tmp); } while (0);
last = 3;
}
cocos2d::CCMenuItemImage* ret = cocos2d::CCMenuItemImage::create(arg0, arg1, arg2);
jsval thisObj = argv[last++];
jsval callback = argv[last];
JSObject *obj = bind_menu_item<cocos2d::CCMenuItemImage>(cx, ret, callback, thisObj);
JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(obj));
return JS_TRUE;
}
return JS_FALSE;
}
示例3: js_conio_cputs
static JSBool
js_conio_cputs(JSContext *cx, uintN argc, jsval *arglist)
{
jsval *argv=JS_ARGV(cx, arglist);
char * str;
jsrefcount rc;
if(argc==1) {
JSVALUE_TO_MSTRING(cx, argv[0], str, NULL);
HANDLE_PENDING(cx);
if(str != NULL) {
rc=JS_SUSPENDREQUEST(cx);
JS_SET_RVAL(cx, arglist,INT_TO_JSVAL(cputs(str)));
free(str);
JS_RESUMEREQUEST(cx, rc);
return(JS_TRUE);
}
}
return(JS_FALSE);
}
示例4: js_cocos2dx_postMessage
static JSBool js_cocos2dx_postMessage(JSContext *cx, uint32_t argc, jsval *vp)
{
jsval *argv = JS_ARGV(cx, vp);
if (argc >= 1) {
std::string* msg = new std::string();
do {
JSBool ok = jsval_to_std_string(cx, argv[0], msg);
JSB_PRECONDITION2( ok, cx, JS_FALSE, "Error processing arguments");
} while (0);
extension::MessageDelegate::sharedMessageDelegate()->postMessage("message", msg->c_str());
CC_SAFE_DELETE(msg);
JS_SET_RVAL(cx, vp, JSVAL_VOID);
return JS_TRUE;
}
JS_ReportError(cx, "wrong number of arguments: %d, was expecting %d", argc, 1);
return JS_FALSE;
}
示例5: Sys_loadModule
static JSBool Sys_loadModule(JSContext *cx, unsigned argc, jsval *vp)
{
jsval module;
JSString *module_str;
char *module_name;
module = JS_ARGV(cx, vp)[0];
if (!JSVAL_IS_STRING(module))
return JS_FALSE;
module_str = JSVAL_TO_STRING(module);
module_name = JS_EncodeString(cx, module_str);
if (!module_name)
return JS_FALSE;
JS_Log(JS_LOG_INFO, "[STUB] Loading module \"%s\".\n", module_name);
JS_free(cx, module_name);
return JS_TRUE;
}
示例6: JSLoadScripts
/**
* The function used as importScript from the JavaScript environment (ZOO-API)
*
* @param cx the JavaScript context
* @param argc the number of parameters
* @param argv1 the parameter values
* @return true
*/
JSBool
JSLoadScripts(JSContext *cx, uintN argc, jsval *argv1)
{
JS_MaybeGC(cx);
jsval *argv = JS_ARGV(cx,argv1);
int i=0;
JS_MaybeGC(cx);
for(i=0;i<argc;i++){
char *filename = JSValToChar(cx,&argv[i]);
#ifdef JS_DEBUG
fprintf(stderr,"Trying to load %s\n",api0);
fflush(stderr);
#endif
JSObject *api_script1=loadZooApiFile(cx,JS_GetGlobalObject(cx),filename);
}
JS_MaybeGC(cx);
JS_SET_RVAL(cx, argv1, JSVAL_VOID);
return JS_TRUE;
}
示例7: rpmfc_ctor
static JSBool
rpmfc_ctor(JSContext *cx, uintN argc, jsval *vp)
{
jsval *argv = JS_ARGV(cx, vp);
JSObject *obj = JS_NewObjectForConstructor(cx, vp);
JSBool ok = JS_FALSE;
_CTOR_DEBUG_ENTRY(_debug);
if (JS_IsConstructing(cx, vp)) {
(void) rpmfc_init(cx, obj);
} else {
if ((obj = JS_NewObject(cx, &rpmfcClass, NULL, NULL)) == NULL)
goto exit;
*vp = OBJECT_TO_JSVAL(obj);
}
ok = JS_TRUE;
exit:
return ok;
}
示例8: JS_ConvertArguments
JSBool S_CCFileUtils::jsfullPathFromRelativeFile(JSContext *cx, uint32_t argc, jsval *vp) {
if (argc == 2) {
JSString *arg0;
JSString *arg1;
JS_ConvertArguments(cx, 2, JS_ARGV(cx, vp), "SS", &arg0, &arg1);
char *narg0 = JS_EncodeString(cx, arg0);
char *narg1 = JS_EncodeString(cx, arg1);
const char *ret = CCFileUtils::sharedFileUtils()->fullPathFromRelativeFile(narg0, narg1);
if (ret == NULL) {
JS_SET_RVAL(cx, vp, JSVAL_NULL);
return JS_TRUE;
}
JSString *str = JS_NewStringCopyN(cx, ret, strlen(ret));
JS_SET_RVAL(cx, vp, STRING_TO_JSVAL(str));
return JS_TRUE;
return JS_TRUE;
}
JS_SET_RVAL(cx, vp, JSVAL_TRUE);
return JS_TRUE;
}
示例9: seal
static JSBool
seal(JSContext* cx, uintN argc, jsval* vp)
{
jsval* argv = JS_ARGV(cx, vp);
JSObject *target;
JSBool deep = JS_FALSE;
if(!JS_ConvertArguments(cx, argc, argv, "o/b", &target, &deep))
return JS_FALSE;
if(!target) {
JS_SET_RVAL(cx, vp, JSVAL_VOID);
return JS_TRUE;
}
if(JS_SealObject(cx, target, deep) != JS_TRUE)
return JS_FALSE;
JS_SET_RVAL(cx, vp, JSVAL_VOID);
return JS_TRUE;
}
示例10: js_PluginGoogleAnalyticsJS_PluginGoogleAnalytics_logTiming
JSBool js_PluginGoogleAnalyticsJS_PluginGoogleAnalytics_logTiming(JSContext *cx, uint32_t argc, jsval *vp)
{
jsval *argv = JS_ARGV(cx, vp);
JSBool ok = JS_TRUE;
if (argc == 4) {
std::string arg0;
int arg1;
std::string arg2;
std::string arg3;
ok &= jsval_to_std_string(cx, argv[0], &arg0);
ok &= jsval_to_int32(cx, argv[1], (int32_t *)&arg1);
ok &= jsval_to_std_string(cx, argv[2], &arg2);
ok &= jsval_to_std_string(cx, argv[3], &arg3);
JSB_PRECONDITION2(ok, cx, JS_FALSE, "Error processing arguments");
sdkbox::PluginGoogleAnalytics::logTiming(arg0, arg1, arg2, arg3);
JS_SET_RVAL(cx, vp, JSVAL_VOID);
return JS_TRUE;
}
JS_ReportError(cx, "wrong number of arguments");
return JS_FALSE;
}
示例11: rpmbf_del
static JSBool
rpmbf_del(JSContext *cx, uintN argc, jsval *vp)
{
jsval *argv = JS_ARGV(cx, vp);
JSObject *obj = JS_THIS_OBJECT(cx, vp);
void * ptr = JS_GetInstancePrivate(cx, obj, &rpmbfClass, NULL);
rpmbf bf = ptr;
JSBool ok = JS_FALSE;
const char * _s = NULL;
_METHOD_DEBUG_ENTRY(_debug);
*vp = JSVAL_FALSE;
if (!(ok = JS_ConvertArguments(cx, argc, argv, "s", &_s)))
goto exit;
*vp = (rpmbfDel(bf, _s, 0) == 0 ? JSVAL_TRUE : JSVAL_FALSE);
ok = JS_TRUE;
exit:
return ok;
}
示例12: elixir_border_evas_object_params
static JSBool
elixir_border_evas_object_params(void (*func)(const Evas_Object *obj, int *l, int *r, int *t, int *b),
const elixir_parameter_t *params[],
JSContext *cx, uintN argc, jsval *vp)
{
Evas_Object *know;
int l;
int r;
int t;
int b;
elixir_value_t val[1];
if (!elixir_params_check(cx, params, val, argc, JS_ARGV(cx, vp)))
return JS_FALSE;
GET_PRIVATE(cx, val[0].v.obj, know);
func(know, &l, &r, &t, &b);
return elixir_new_evas_border(cx, l, r, t, b, &(JS_RVAL(cx, vp)));
}
示例13: UnwrapNW
static bool
UnwrapNW(JSContext *cx, unsigned argc, jsval *vp)
{
if (argc != 1) {
return ThrowException(NS_ERROR_XPC_NOT_ENOUGH_ARGS, cx);
}
JS::RootedValue v(cx, JS_ARGV(cx, vp)[0]);
if (!v.isObject() || !js::IsWrapper(&v.toObject())) {
JS_SET_RVAL(cx, vp, v);
return true;
}
if (AccessCheck::wrapperSubsumes(&v.toObject())) {
bool ok = xpc::WrapperFactory::WaiveXrayAndWrap(cx, v.address());
NS_ENSURE_TRUE(ok, false);
}
JS_SET_RVAL(cx, vp, v);
return true;
}
示例14: js_cocos2dx_swap_native_object
JSBool js_cocos2dx_swap_native_object(JSContext *cx, uint32_t argc, jsval *vp)
{
if (argc == 2) {
// get the native object from the second object to the first object
jsval *argv = JS_ARGV(cx, vp);
JSObject *one = JSVAL_TO_OBJECT(argv[0]);
JSObject *two = JSVAL_TO_OBJECT(argv[1]);
js_proxy_t *nproxy;
JS_GET_NATIVE_PROXY(nproxy, two);
void *ptrTwo = (nproxy ? nproxy->ptr : NULL);
if (nproxy) {
js_proxy_t *jsproxy;
JS_GET_PROXY(jsproxy, ptrTwo);
if (jsproxy) {
JS_REMOVE_PROXY(jsproxy, nproxy);
JS_NEW_PROXY(nproxy, ptrTwo, one);
}
}
}
return JS_TRUE;
}
示例15: elixir_evas_object_line_xy_get
static JSBool
elixir_evas_object_line_xy_get(JSContext *cx, uintN argc, jsval *vp)
{
Evas_Object *evas_line;
JSObject *js_obj;
JSClass *evas_line_coord_class;
jsval propertie;
int x1;
int y1;
int x2;
int y2;
elixir_value_t val[1];
if (!elixir_params_check(cx, _evas_object_line_params, val, argc, JS_ARGV(cx, vp)))
return JS_FALSE;
GET_PRIVATE(cx, val[0].v.obj, evas_line);
evas_object_line_xy_get(evas_line, &x1, &y1, &x2, &y2);
evas_line_coord_class = elixir_class_request("evas_line_coord", NULL);
js_obj = JS_NewObject(cx, evas_line_coord_class, NULL, NULL);
if (!js_obj)
return JS_FALSE;
JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(js_obj));
propertie = INT_TO_JSVAL(x1);
JS_SetProperty(cx, js_obj, "x1", &propertie);
propertie = INT_TO_JSVAL(y1);
JS_SetProperty(cx, js_obj, "y1", &propertie);
propertie = INT_TO_JSVAL(x2);
JS_SetProperty(cx, js_obj, "x2", &propertie);
propertie = INT_TO_JSVAL(y2);
JS_SetProperty(cx, js_obj, "y2", &propertie);
return JS_TRUE;
}