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); }
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); }