⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jsapi.h

📁 一个用于智能手机的多媒体库适合S60 WinCE的跨平台开发库
💻 H
📖 第 1 页 / 共 5 页
字号:
/* * Returns the external-string finalizer index for this string, or -1 if it is * an "internal" (native to JS engine) string. */extern JS_PUBLIC_API(intN)JS_GetExternalStringGCType(JSRuntime *rt, JSString *str);/************************************************************************//* * Classes, objects, and properties. *//* For detailed comments on the function pointer types, see jspubtd.h. */struct JSClass {    const char          *name;    uint32              flags;    /* Mandatory non-null function pointer members. */    JSPropertyOp        addProperty;    JSPropertyOp        delProperty;    JSPropertyOp        getProperty;    JSPropertyOp        setProperty;    JSEnumerateOp       enumerate;    JSResolveOp         resolve;    JSConvertOp         convert;    JSFinalizeOp        finalize;    /* Optionally non-null members start here. */    JSGetObjectOps      getObjectOps;    JSCheckAccessOp     checkAccess;    JSNative            call;    JSNative            construct;    JSXDRObjectOp       xdrObject;    JSHasInstanceOp     hasInstance;    JSMarkOp            mark;    jsword              spare;};#define JSCLASS_HAS_PRIVATE             (1<<0)  /* objects have private slot */#define JSCLASS_NEW_ENUMERATE           (1<<1)  /* has JSNewEnumerateOp hook */#define JSCLASS_NEW_RESOLVE             (1<<2)  /* has JSNewResolveOp hook */#define JSCLASS_PRIVATE_IS_NSISUPPORTS  (1<<3)  /* private is (nsISupports *) */#define JSCLASS_SHARE_ALL_PROPERTIES    (1<<4)  /* all properties are SHARED *//* * To reserve slots fetched and stored via JS_Get/SetReservedSlot, bitwise-or * JSCLASS_HAS_RESERVED_SLOTS(n) into the initializer for JSClass.flags, where * n is a constant in [1, 255].  Reserved slots are indexed from 0 to n-1. */#define JSCLASS_RESERVED_SLOTS_SHIFT    8       /* room for 8 flags below */#define JSCLASS_RESERVED_SLOTS_WIDTH    8       /* and 16 above this field */#define JSCLASS_RESERVED_SLOTS_MASK     JS_BITMASK(JSCLASS_RESERVED_SLOTS_WIDTH)#define JSCLASS_HAS_RESERVED_SLOTS(n)   (((n) & JSCLASS_RESERVED_SLOTS_MASK)   \                                         << JSCLASS_RESERVED_SLOTS_SHIFT)#define JSCLASS_RESERVED_SLOTS(clasp)   (((clasp)->flags                      \                                          >> JSCLASS_RESERVED_SLOTS_SHIFT)     \                                         & JSCLASS_RESERVED_SLOTS_MASK)/* Initializer for unused members of statically initialized JSClass structs. */#define JSCLASS_NO_OPTIONAL_MEMBERS     0,0,0,0,0,0,0,0/* For detailed comments on these function pointer types, see jspubtd.h. */struct JSObjectOps {    /* Mandatory non-null function pointer members. */    JSNewObjectMapOp    newObjectMap;    JSObjectMapOp       destroyObjectMap;    JSLookupPropOp      lookupProperty;    JSDefinePropOp      defineProperty;    JSPropertyIdOp      getProperty;    JSPropertyIdOp      setProperty;    JSAttributesOp      getAttributes;    JSAttributesOp      setAttributes;    JSPropertyIdOp      deleteProperty;    JSConvertOp         defaultValue;    JSNewEnumerateOp    enumerate;    JSCheckAccessIdOp   checkAccess;    /* Optionally non-null members start here. */    JSObjectOp          thisObject;    JSPropertyRefOp     dropProperty;    JSNative            call;    JSNative            construct;    JSXDRObjectOp       xdrObject;    JSHasInstanceOp     hasInstance;    JSSetObjectSlotOp   setProto;    JSSetObjectSlotOp   setParent;    JSMarkOp            mark;    JSFinalizeOp        clear;    JSGetRequiredSlotOp getRequiredSlot;    JSSetRequiredSlotOp setRequiredSlot;};/* * Classes that expose JSObjectOps via a non-null getObjectOps class hook may * derive a property structure from this struct, return a pointer to it from * lookupProperty and defineProperty, and use the pointer to avoid rehashing * in getAttributes and setAttributes. * * The jsid type contains either an int jsval (see JSVAL_IS_INT above), or an * internal pointer that is opaque to users of this API, but which users may * convert from and to a jsval using JS_ValueToId and JS_IdToValue. */struct JSProperty {    jsid id;};struct JSIdArray {    jsint length;    jsid  vector[1];    /* actually, length jsid words */};extern JS_PUBLIC_API(void)JS_DestroyIdArray(JSContext *cx, JSIdArray *ida);extern JS_PUBLIC_API(JSBool)JS_ValueToId(JSContext *cx, jsval v, jsid *idp);extern JS_PUBLIC_API(JSBool)JS_IdToValue(JSContext *cx, jsid id, jsval *vp);#define JSRESOLVE_QUALIFIED     0x01    /* resolve a qualified property id */#define JSRESOLVE_ASSIGNING     0x02    /* resolve on the left of assignment */extern JS_PUBLIC_API(JSBool)JS_PropertyStub(JSContext *cx, JSObject *obj, jsval id, jsval *vp);extern JS_PUBLIC_API(JSBool)JS_EnumerateStub(JSContext *cx, JSObject *obj);extern JS_PUBLIC_API(JSBool)JS_ResolveStub(JSContext *cx, JSObject *obj, jsval id);extern JS_PUBLIC_API(JSBool)JS_ConvertStub(JSContext *cx, JSObject *obj, JSType type, jsval *vp);extern JS_PUBLIC_API(void)JS_FinalizeStub(JSContext *cx, JSObject *obj);struct JSConstDoubleSpec {    jsdouble        dval;    const char      *name;    uint8           flags;    uint8           spare[3];};/* * To define an array element rather than a named property member, cast the * element's index to (const char *) and initialize name with it, and set the * JSPROP_INDEX bit in flags. */struct JSPropertySpec {    const char      *name;    int8            tinyid;    uint8           flags;    JSPropertyOp    getter;    JSPropertyOp    setter;};struct JSFunctionSpec {    const char      *name;    JSNative        call;    uint8           nargs;    uint8           flags;    uint16          extra;      /* number of arg slots for local GC roots */};extern JS_PUBLIC_API(JSObject *)JS_InitClass(JSContext *cx, JSObject *obj, JSObject *parent_proto,             JSClass *clasp, JSNative constructor, uintN nargs,             JSPropertySpec *ps, JSFunctionSpec *fs,             JSPropertySpec *static_ps, JSFunctionSpec *static_fs);#ifdef JS_THREADSAFEextern JS_PUBLIC_API(JSClass *)JS_GetClass(JSContext *cx, JSObject *obj);#define JS_GET_CLASS(cx,obj) JS_GetClass(cx, obj)#elseextern JS_PUBLIC_API(JSClass *)JS_GetClass(JSObject *obj);#define JS_GET_CLASS(cx,obj) JS_GetClass(obj)#endifextern JS_PUBLIC_API(JSBool)JS_InstanceOf(JSContext *cx, JSObject *obj, JSClass *clasp, jsval *argv);extern JS_PUBLIC_API(void *)JS_GetPrivate(JSContext *cx, JSObject *obj);extern JS_PUBLIC_API(JSBool)JS_SetPrivate(JSContext *cx, JSObject *obj, void *data);extern JS_PUBLIC_API(void *)JS_GetInstancePrivate(JSContext *cx, JSObject *obj, JSClass *clasp,                      jsval *argv);extern JS_PUBLIC_API(JSObject *)JS_GetPrototype(JSContext *cx, JSObject *obj);extern JS_PUBLIC_API(JSBool)JS_SetPrototype(JSContext *cx, JSObject *obj, JSObject *proto);extern JS_PUBLIC_API(JSObject *)JS_GetParent(JSContext *cx, JSObject *obj);extern JS_PUBLIC_API(JSBool)JS_SetParent(JSContext *cx, JSObject *obj, JSObject *parent);extern JS_PUBLIC_API(JSObject *)JS_GetConstructor(JSContext *cx, JSObject *proto);extern JS_PUBLIC_API(JSObject *)JS_NewObject(JSContext *cx, JSClass *clasp, JSObject *proto, JSObject *parent);extern JS_PUBLIC_API(JSObject *)JS_ConstructObject(JSContext *cx, JSClass *clasp, JSObject *proto,                   JSObject *parent);extern JS_PUBLIC_API(JSObject *)JS_DefineObject(JSContext *cx, JSObject *obj, const char *name, JSClass *clasp,                JSObject *proto, uintN attrs);extern JS_PUBLIC_API(JSBool)JS_DefineConstDoubles(JSContext *cx, JSObject *obj, JSConstDoubleSpec *cds);extern JS_PUBLIC_API(JSBool)JS_DefineProperties(JSContext *cx, JSObject *obj, JSPropertySpec *ps);extern JS_PUBLIC_API(JSBool)JS_DefineProperty(JSContext *cx, JSObject *obj, const char *name, jsval value,                  JSPropertyOp getter, JSPropertyOp setter, uintN attrs);/* * Determine the attributes (JSPROP_* flags) of a property on a given object. * * If the object does not have a property by that name, *foundp will be * JS_FALSE and the value of *attrsp is undefined. */extern JS_PUBLIC_API(JSBool)JS_GetPropertyAttributes(JSContext *cx, JSObject *obj, const char *name,                         uintN *attrsp, JSBool *foundp);/* * Set the attributes of a property on a given object. * * If the object does not have a property by that name, *foundp will be * JS_FALSE and nothing will be altered. */extern JS_PUBLIC_API(JSBool)JS_SetPropertyAttributes(JSContext *cx, JSObject *obj, const char *name,                         uintN attrs, JSBool *foundp);extern JS_PUBLIC_API(JSBool)JS_DefinePropertyWithTinyId(JSContext *cx, JSObject *obj, const char *name,                            int8 tinyid, jsval value,                            JSPropertyOp getter, JSPropertyOp setter,                            uintN attrs);extern JS_PUBLIC_API(JSBool)JS_AliasProperty(JSContext *cx, JSObject *obj, const char *name,                 const char *alias);extern JS_PUBLIC_API(JSBool)JS_LookupProperty(JSContext *cx, JSObject *obj, const char *name, jsval *vp);extern JS_PUBLIC_API(JSBool)JS_GetProperty(JSContext *cx, JSObject *obj, const char *name, jsval *vp);extern JS_PUBLIC_API(JSBool)JS_SetProperty(JSContext *cx, JSObject *obj, const char *name, jsval *vp);extern JS_PUBLIC_API(JSBool)JS_DeleteProperty(JSContext *cx, JSObject *obj, const char *name);extern JS_PUBLIC_API(JSBool)JS_DeleteProperty2(JSContext *cx, JSObject *obj, const char *name,                   jsval *rval);extern JS_PUBLIC_API(JSBool)JS_DefineUCProperty(JSContext *cx, JSObject *obj,                    const jschar *name, size_t namelen, jsval value,                    JSPropertyOp getter, JSPropertyOp setter,                    uintN attrs);/* * Determine the attributes (JSPROP_* flags) of a property on a given object. * * If the object does not have a property by that name, *foundp will be * JS_FALSE and the value of *attrsp is undefined. */extern JS_PUBLIC_API(JSBool)JS_GetUCPropertyAttributes(JSContext *cx, JSObject *obj,                           const jschar *name, size_t namelen,                           uintN *attrsp, JSBool *foundp);/* * Set the attributes of a property on a given object. * * If the object does not have a property by that name, *foundp will be * JS_FALSE and nothing will be altered. */extern JS_PUBLIC_API(JSBool)JS_SetUCPropertyAttributes(JSContext *cx, JSObject *obj,                           const jschar *name, size_t namelen,                           uintN attrs, JSBool *foundp);extern JS_PUBLIC_API(JSBool)JS_DefineUCPropertyWithTinyId(JSContext *cx, JSObject *obj,                              const jschar *name, size_t namelen,                              int8 tinyid, jsval value,                              JSPropertyOp getter, JSPropertyOp setter,                              uintN attrs);extern JS_PUBLIC_API(JSBool)JS_LookupUCProperty(JSContext *cx, JSObject *obj,                    const jschar *name, size_t namelen,                    jsval *vp);extern JS_PUBLIC_API(JSBool)JS_GetUCProperty(JSContext *cx, JSObject *obj,                 const jschar *name, size_t namelen,                 jsval *vp);extern JS_PUBLIC_API(JSBool)JS_SetUCProperty(JSContext *cx, JSObject *obj,                 const jschar *name, size_t namelen,                 jsval *vp);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -