mirror of
https://github.com/rkd77/elinks.git
synced 2024-12-04 14:46:47 -05:00
SEE: setTimeout is a window object method.
This commit is contained in:
parent
5521ab2910
commit
e5e6727e81
@ -68,22 +68,6 @@ see_done(struct module *xxx)
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
js_setTimeout(struct SEE_interpreter *interp, struct SEE_object *self,
|
|
||||||
struct SEE_object *thisobj, int argc, struct SEE_value **argv,
|
|
||||||
struct SEE_value *res)
|
|
||||||
{
|
|
||||||
struct ecmascript_interpreter *ei;
|
|
||||||
unsigned char *code;
|
|
||||||
int timeout;
|
|
||||||
|
|
||||||
if (argc != 2) return;
|
|
||||||
ei = ((struct global_object *)interp)->interpreter;
|
|
||||||
code = SEE_value_to_unsigned_char(interp, argv[0]);
|
|
||||||
timeout = SEE_ToInt32(interp, argv[1]);
|
|
||||||
ecmascript_set_timeout(ei, code, timeout);
|
|
||||||
}
|
|
||||||
|
|
||||||
void *
|
void *
|
||||||
see_get_interpreter(struct ecmascript_interpreter *interpreter)
|
see_get_interpreter(struct ecmascript_interpreter *interpreter)
|
||||||
{
|
{
|
||||||
@ -104,7 +88,6 @@ see_get_interpreter(struct ecmascript_interpreter *interpreter)
|
|||||||
init_js_location_object(interpreter);
|
init_js_location_object(interpreter);
|
||||||
init_js_document_object(interpreter);
|
init_js_document_object(interpreter);
|
||||||
init_js_forms_object(interpreter);
|
init_js_forms_object(interpreter);
|
||||||
SEE_CFUNCTION_PUTA(interp, interp->Global, "setTimeout", js_setTimeout, 2, 0);
|
|
||||||
return interp;
|
return interp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -95,7 +95,7 @@ struct SEE_string *s_button;
|
|||||||
struct SEE_string *s_hidden;
|
struct SEE_string *s_hidden;
|
||||||
|
|
||||||
struct SEE_string *s_timeout;
|
struct SEE_string *s_timeout;
|
||||||
|
struct SEE_string *s_setTimeout;
|
||||||
|
|
||||||
void
|
void
|
||||||
init_intern_strings(void)
|
init_intern_strings(void)
|
||||||
@ -194,4 +194,5 @@ init_intern_strings(void)
|
|||||||
s_hidden = SEE_intern_global("hidden");
|
s_hidden = SEE_intern_global("hidden");
|
||||||
|
|
||||||
s_timeout = SEE_intern_global("timeout");
|
s_timeout = SEE_intern_global("timeout");
|
||||||
|
s_setTimeout = SEE_intern_global("setTimeout");
|
||||||
}
|
}
|
||||||
|
@ -100,4 +100,5 @@ extern struct SEE_string *s_button;
|
|||||||
extern struct SEE_string *s_hidden;
|
extern struct SEE_string *s_hidden;
|
||||||
|
|
||||||
extern struct SEE_string *s_timeout;
|
extern struct SEE_string *s_timeout;
|
||||||
|
extern struct SEE_string *s_setTimeout;
|
||||||
#endif
|
#endif
|
||||||
|
@ -54,6 +54,7 @@ static int window_canput(struct SEE_interpreter *, struct SEE_object *, struct S
|
|||||||
static int window_hasproperty(struct SEE_interpreter *, struct SEE_object *, struct SEE_string *);
|
static int window_hasproperty(struct SEE_interpreter *, struct SEE_object *, struct SEE_string *);
|
||||||
static void js_window_alert(struct SEE_interpreter *, struct SEE_object *, struct SEE_object *, int, struct SEE_value **, struct SEE_value *);
|
static void js_window_alert(struct SEE_interpreter *, struct SEE_object *, struct SEE_object *, int, struct SEE_value **, struct SEE_value *);
|
||||||
static void js_window_open(struct SEE_interpreter *, struct SEE_object *, struct SEE_object *, int, struct SEE_value **, struct SEE_value *);
|
static void js_window_open(struct SEE_interpreter *, struct SEE_object *, struct SEE_object *, int, struct SEE_value **, struct SEE_value *);
|
||||||
|
static void js_setTimeout(struct SEE_interpreter *, struct SEE_object *, struct SEE_object *, int, struct SEE_value **, struct SEE_value *);
|
||||||
|
|
||||||
void location_goto(struct document_view *, unsigned char *);
|
void location_goto(struct document_view *, unsigned char *);
|
||||||
|
|
||||||
@ -134,6 +135,8 @@ window_get(struct SEE_interpreter *interp, struct SEE_object *o,
|
|||||||
SEE_SET_OBJECT(res, win->alert);
|
SEE_SET_OBJECT(res, win->alert);
|
||||||
} else if (p == s_open) {
|
} else if (p == s_open) {
|
||||||
SEE_SET_OBJECT(res, win->open);
|
SEE_SET_OBJECT(res, win->open);
|
||||||
|
} else if (p == s_setTimeout) {
|
||||||
|
SEE_SET_OBJECT(res, win->setTimeout);
|
||||||
} else if (p == s_location) {
|
} else if (p == s_location) {
|
||||||
SEE_OBJECT_GET(interp, interp->Global, s_location, res);
|
SEE_OBJECT_GET(interp, interp->Global, s_location, res);
|
||||||
} else if (p == s_navigator) {
|
} else if (p == s_navigator) {
|
||||||
@ -313,6 +316,22 @@ end:
|
|||||||
done_uri(uri);
|
done_uri(uri);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
js_setTimeout(struct SEE_interpreter *interp, struct SEE_object *self,
|
||||||
|
struct SEE_object *thisobj, int argc, struct SEE_value **argv,
|
||||||
|
struct SEE_value *res)
|
||||||
|
{
|
||||||
|
struct ecmascript_interpreter *ei;
|
||||||
|
unsigned char *code;
|
||||||
|
int timeout;
|
||||||
|
|
||||||
|
if (argc != 2) return;
|
||||||
|
ei = ((struct global_object *)interp)->interpreter;
|
||||||
|
code = SEE_value_to_unsigned_char(interp, argv[0]);
|
||||||
|
timeout = SEE_ToInt32(interp, argv[1]);
|
||||||
|
ecmascript_set_timeout(ei, code, timeout);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
init_js_window_object(struct ecmascript_interpreter *interpreter)
|
init_js_window_object(struct ecmascript_interpreter *interpreter)
|
||||||
{
|
{
|
||||||
@ -331,6 +350,7 @@ init_js_window_object(struct ecmascript_interpreter *interpreter)
|
|||||||
|
|
||||||
g->win->alert = SEE_cfunction_make(interp, js_window_alert, s_alert, 1);
|
g->win->alert = SEE_cfunction_make(interp, js_window_alert, s_alert, 1);
|
||||||
g->win->open = SEE_cfunction_make(interp, js_window_open, s_open, 3);
|
g->win->open = SEE_cfunction_make(interp, js_window_open, s_open, 3);
|
||||||
|
g->win->setTimeout = SEE_cfunction_make(interp, js_setTimeout, s_setTimeout, 2);
|
||||||
|
|
||||||
SEE_OBJECT_GET(interp, (struct SEE_object *)g->win, s_top, &v);
|
SEE_OBJECT_GET(interp, (struct SEE_object *)g->win, s_top, &v);
|
||||||
SEE_OBJECT_PUT(interp, interp->Global, s_top, &v, 0);
|
SEE_OBJECT_PUT(interp, interp->Global, s_top, &v, 0);
|
||||||
@ -342,6 +362,8 @@ init_js_window_object(struct ecmascript_interpreter *interpreter)
|
|||||||
SEE_OBJECT_PUT(interp, interp->Global, s_alert, &v, 0);
|
SEE_OBJECT_PUT(interp, interp->Global, s_alert, &v, 0);
|
||||||
SEE_OBJECT_GET(interp, (struct SEE_object *)g->win, s_open, &v);
|
SEE_OBJECT_GET(interp, (struct SEE_object *)g->win, s_open, &v);
|
||||||
SEE_OBJECT_PUT(interp, interp->Global, s_open, &v, 0);
|
SEE_OBJECT_PUT(interp, interp->Global, s_open, &v, 0);
|
||||||
|
SEE_OBJECT_GET(interp, (struct SEE_object *)g->win, s_setTimeout, &v);
|
||||||
|
SEE_OBJECT_PUT(interp, interp->Global, s_setTimeout, &v, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -13,6 +13,7 @@ struct js_window_object {
|
|||||||
struct view_state *vs;
|
struct view_state *vs;
|
||||||
struct SEE_object *alert;
|
struct SEE_object *alert;
|
||||||
struct SEE_object *open;
|
struct SEE_object *open;
|
||||||
|
struct SEE_object *setTimeout;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct global_object {
|
struct global_object {
|
||||||
|
Loading…
Reference in New Issue
Block a user