0
0
mirror of https://github.com/rkd77/elinks.git synced 2025-09-21 19:46:23 -04:00

SEE: Added setTimeout function.

This commit is contained in:
Witold Filipczyk
2006-10-23 22:45:55 +02:00
committed by Witold Filipczyk
parent 50b6a61f31
commit cc4d02b0ae
4 changed files with 53 additions and 0 deletions

View File

@@ -130,6 +130,7 @@ ecmascript_get_interpreter(struct view_state *vs)
#else
spidermonkey_get_interpreter(interpreter);
#endif
init_string(&interpreter->code);
return interpreter;
}
@@ -143,6 +144,8 @@ ecmascript_put_interpreter(struct ecmascript_interpreter *interpreter)
spidermonkey_put_interpreter(interpreter);
#endif
free_string_list(&interpreter->onload_snippets);
kill_timer(&interpreter->timeout);
done_string(&interpreter->code);
interpreter->vs->ecmascript = NULL;
mem_free(interpreter);
}
@@ -297,6 +300,26 @@ ecmascript_set_action(unsigned char **action, unsigned char *string)
}
}
static void
ecmascript_timeout_handler(void *i)
{
struct ecmascript_interpreter *interpreter = i;
ecmascript_eval(interpreter, &interpreter->code, NULL);
}
void
ecmascript_set_timeout(struct ecmascript_interpreter *interpreter, unsigned char *code, int timeout)
{
assert(interpreter);
if (!code) return;
done_string(&interpreter->code);
init_string(&interpreter->code);
add_to_string(&interpreter->code, code);
mem_free(code);
install_timer(&interpreter->timeout, timeout, ecmascript_timeout_handler, interpreter);
}
static struct module *ecmascript_modules[] = {
#ifdef CONFIG_ECMASCRIPT_SEE
&see_module,