Trace String.fromCharCode.
Handle failure signals of < 0 or NULL from traceable natives.
This commit is contained in:
@@ -187,13 +187,40 @@ builtin_String_p_substring_1(JSContext *cx, JSString *str, jsint begin)
|
||||
}
|
||||
|
||||
JSString* FASTCALL
|
||||
builtin_ConcatStrings(JSContext *cx, JSString* left, JSString* right)
|
||||
builtin_ConcatStrings(JSContext* cx, JSString* left, JSString* right)
|
||||
{
|
||||
/* XXX check for string freelist space */
|
||||
/* XXX just make js_ConcatStrings FASTCALL? */
|
||||
return js_ConcatStrings(cx, left, right);
|
||||
}
|
||||
|
||||
JSString* FASTCALL
|
||||
builtin_String_getelem(JSContext* cx, JSString* str, jsint i)
|
||||
{
|
||||
if ((size_t)i >= JSSTRING_LENGTH(str))
|
||||
return NULL;
|
||||
/* XXX check for string freelist space */
|
||||
str = js_GetUnitString(cx, str, (size_t)i);
|
||||
return str;
|
||||
}
|
||||
|
||||
JSString* FASTCALL
|
||||
builtin_String_fromCharCode(JSContext* cx, jsint i)
|
||||
{
|
||||
jschar c = (jschar)i;
|
||||
/* XXX check for string freelist space */
|
||||
/* XXX refactor js_GetUnitString so we can call it with a jschar */
|
||||
/* (also in js_str_fromCharCode!) */
|
||||
return js_NewStringCopyN(cx, &c, 1);
|
||||
}
|
||||
|
||||
jsint FASTCALL
|
||||
builtin_String_p_charCodeAt(JSString* str, jsint i)
|
||||
{
|
||||
if (i < 0 || (jsint)JSSTRING_LENGTH(str) <= i)
|
||||
return -1;
|
||||
return JSSTRING_CHARS(str)[i];
|
||||
}
|
||||
|
||||
#define LO ARGSIZE_LO
|
||||
#define F ARGSIZE_F
|
||||
#define Q ARGSIZE_Q
|
||||
|
||||
Reference in New Issue
Block a user