JS_ReportError(cx, "usage: trap [fun] [pc] expr");
JS_ReportErrorNumber(cx, NULL, JSMSG_TRAP_USAGE);
Trap(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval){    JSString *str;    JSScript *script;    int32 i;    if (argc == 0) {	JS_ReportError(cx, "usage: trap [fun] [pc] expr");	return JS_FALSE;    }    argc--;    str = JS_ValueToString(cx, argv[argc]);    if (!str)	return JS_FALSE;    argv[argc] = STRING_TO_JSVAL(str);    if (!GetTrapArgs(cx, argc, argv, &script, &i))	return JS_FALSE;    return JS_SetTrap(cx, script, script->code + i, TrapHandler, str);}