Esempio n. 1
0
static JSBool
HandleKeyword(JSContext *cx, JSONParser *jp, const jschar *buf, uint32 len)
{
    jsval keyword;
    JSTokenType tt = js_CheckKeyword(buf, len);
    if (tt != TOK_PRIMARY)
        return JS_FALSE;
 
    if (buf[0] == 'n')
        keyword = JSVAL_NULL;
    else if (buf[0] == 't')
        keyword = JSVAL_TRUE;
    else if (buf[0] == 'f')
        keyword = JSVAL_FALSE;
    else
        return JS_FALSE;
 
    jsuint length;
    if (!JS_GetArrayLength(cx, jp->objectStack, &length))
        return JS_FALSE;
 
    jsval o;
    if (!JS_GetElement(cx, jp->objectStack, length - 1, &o))
        return JS_FALSE;
    JS_ASSERT(JSVAL_IS_OBJECT(o));
    JSObject *obj = JSVAL_TO_OBJECT(o);
 
    return PushValue(cx, jp, obj, keyword);
}
Esempio n. 2
0
static JSBool
HandleKeyword(JSContext *cx, JSONParser *jp, const jschar *buf, uint32 len)
{
    jsval keyword;
    JSTokenType tt = js_CheckKeyword(buf, len);
    if (tt != TOK_PRIMARY)
        return JS_FALSE;

    if (buf[0] == 'n')
        keyword = JSVAL_NULL;
    else if (buf[0] == 't')
        keyword = JSVAL_TRUE;
    else if (buf[0] == 'f')
        keyword = JSVAL_FALSE;
    else
        return JS_FALSE;

    JSObject *obj = GetTopOfObjectStack(cx, jp);
    if (!obj)
        return JS_FALSE;

    return PushValue(cx, jp, obj, keyword);
}