Add JS_DefineUCFunction (rs=jst).

This commit is contained in:
brendan%mozilla.org 2004-05-07 03:21:30 +00:00
Родитель 6cbcc87a90
Коммит 0b7cee1356
2 изменённых файлов: 25 добавлений и 7 удалений

Просмотреть файл

@ -2216,7 +2216,7 @@ DefineUCProperty(JSContext *cx, JSObject *obj,
{ {
JSAtom *atom; JSAtom *atom;
atom = js_AtomizeChars(cx, name, AUTO_NAMELEN(name,namelen), 0); atom = js_AtomizeChars(cx, name, AUTO_NAMELEN(name, namelen), 0);
if (!atom) if (!atom)
return JS_FALSE; return JS_FALSE;
if (flags != 0 && OBJ_IS_NATIVE(obj)) { if (flags != 0 && OBJ_IS_NATIVE(obj)) {
@ -2324,7 +2324,7 @@ LookupUCProperty(JSContext *cx, JSObject *obj,
{ {
JSAtom *atom; JSAtom *atom;
atom = js_AtomizeChars(cx, name, AUTO_NAMELEN(name,namelen), 0); atom = js_AtomizeChars(cx, name, AUTO_NAMELEN(name, namelen), 0);
if (!atom) if (!atom)
return JS_FALSE; return JS_FALSE;
return OBJ_LOOKUP_PROPERTY(cx, obj, (jsid)atom, objp, propp); return OBJ_LOOKUP_PROPERTY(cx, obj, (jsid)atom, objp, propp);
@ -2541,7 +2541,7 @@ JS_GetUCPropertyAttributes(JSContext *cx, JSObject *obj,
{ {
CHECK_REQUEST(cx); CHECK_REQUEST(cx);
return GetPropertyAttributes(cx, obj, return GetPropertyAttributes(cx, obj,
js_AtomizeChars(cx, name, AUTO_NAMELEN(name,namelen), 0), js_AtomizeChars(cx, name, AUTO_NAMELEN(name, namelen), 0),
attrsp, foundp); attrsp, foundp);
} }
@ -2552,7 +2552,7 @@ JS_SetUCPropertyAttributes(JSContext *cx, JSObject *obj,
{ {
CHECK_REQUEST(cx); CHECK_REQUEST(cx);
return SetPropertyAttributes(cx, obj, return SetPropertyAttributes(cx, obj,
js_AtomizeChars(cx, name, AUTO_NAMELEN(name,namelen), 0), js_AtomizeChars(cx, name, AUTO_NAMELEN(name, namelen), 0),
attrs, foundp); attrs, foundp);
} }
@ -2592,7 +2592,7 @@ JS_GetUCProperty(JSContext *cx, JSObject *obj,
JSAtom *atom; JSAtom *atom;
CHECK_REQUEST(cx); CHECK_REQUEST(cx);
atom = js_AtomizeChars(cx, name, AUTO_NAMELEN(name,namelen), 0); atom = js_AtomizeChars(cx, name, AUTO_NAMELEN(name, namelen), 0);
if (!atom) if (!atom)
return JS_FALSE; return JS_FALSE;
return OBJ_GET_PROPERTY(cx, obj, (jsid)atom, vp); return OBJ_GET_PROPERTY(cx, obj, (jsid)atom, vp);
@ -2606,7 +2606,7 @@ JS_SetUCProperty(JSContext *cx, JSObject *obj,
JSAtom *atom; JSAtom *atom;
CHECK_REQUEST(cx); CHECK_REQUEST(cx);
atom = js_AtomizeChars(cx, name, AUTO_NAMELEN(name,namelen), 0); atom = js_AtomizeChars(cx, name, AUTO_NAMELEN(name, namelen), 0);
if (!atom) if (!atom)
return JS_FALSE; return JS_FALSE;
return OBJ_SET_PROPERTY(cx, obj, (jsid)atom, vp); return OBJ_SET_PROPERTY(cx, obj, (jsid)atom, vp);
@ -2620,7 +2620,7 @@ JS_DeleteUCProperty2(JSContext *cx, JSObject *obj,
JSAtom *atom; JSAtom *atom;
CHECK_REQUEST(cx); CHECK_REQUEST(cx);
atom = js_AtomizeChars(cx, name, AUTO_NAMELEN(name,namelen), 0); atom = js_AtomizeChars(cx, name, AUTO_NAMELEN(name, namelen), 0);
if (!atom) if (!atom)
return JS_FALSE; return JS_FALSE;
return OBJ_DELETE_PROPERTY(cx, obj, (jsid)atom, rval); return OBJ_DELETE_PROPERTY(cx, obj, (jsid)atom, rval);
@ -3011,6 +3011,19 @@ JS_DefineFunction(JSContext *cx, JSObject *obj, const char *name, JSNative call,
return js_DefineFunction(cx, obj, atom, call, nargs, attrs); return js_DefineFunction(cx, obj, atom, call, nargs, attrs);
} }
JS_PUBLIC_API(JSFunction *)
JS_DefineUCFunction(JSContext *cx, JSObject *obj,
const jschar *name, size_t namelen, JSNative call,
uintN nargs, uintN attrs)
{
JSAtom *atom;
atom = js_AtomizeChars(cx, name, AUTO_NAMELEN(name, namelen), 0);
if (!atom)
return NULL;
return js_DefineFunction(cx, obj, atom, call, nargs, attrs);
}
static JSScript * static JSScript *
CompileTokenStream(JSContext *cx, JSObject *obj, JSTokenStream *ts, CompileTokenStream(JSContext *cx, JSObject *obj, JSTokenStream *ts,
void *tempMark, JSBool *eofp) void *tempMark, JSBool *eofp)

Просмотреть файл

@ -1199,6 +1199,11 @@ extern JS_PUBLIC_API(JSFunction *)
JS_DefineFunction(JSContext *cx, JSObject *obj, const char *name, JSNative call, JS_DefineFunction(JSContext *cx, JSObject *obj, const char *name, JSNative call,
uintN nargs, uintN attrs); uintN nargs, uintN attrs);
extern JS_PUBLIC_API(JSFunction *)
JS_DefineUCFunction(JSContext *cx, JSObject *obj,
const jschar *name, size_t namelen, JSNative call,
uintN nargs, uintN attrs);
extern JS_PUBLIC_API(JSObject *) extern JS_PUBLIC_API(JSObject *)
JS_CloneFunctionObject(JSContext *cx, JSObject *funobj, JSObject *parent); JS_CloneFunctionObject(JSContext *cx, JSObject *funobj, JSObject *parent);