ELinks 0.18.0
quickjs.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "elinks.h"
#include "bfu/dialog.h"
#include "cache/cache.h"
#include "config/options.h"
#include "cookies/cookies.h"
#include "dialogs/menu.h"
#include "dialogs/status.h"
#include "document/html/frames.h"
#include "document/libdom/renderer.h"
#include "document/libdom/renderer2.h"
#include "document/document.h"
#include "document/forms.h"
#include "document/renderer.h"
#include "document/view.h"
#include "js/ecmascript.h"
#include "js/quickjs.h"
#include "js/quickjs/console.h"
#include "js/quickjs/customevent.h"
#include "js/quickjs/document.h"
#include "js/quickjs/domparser.h"
#include "js/quickjs/element.h"
#include "js/quickjs/event.h"
#include "js/quickjs/fragment.h"
#include "js/quickjs/heartbeat.h"
#include "js/quickjs/history.h"
#include "js/quickjs/image.h"
#include "js/quickjs/keyboard.h"
#include "js/quickjs/localstorage.h"
#include "js/quickjs/location.h"
#include "js/quickjs/mapa.h"
#include "js/quickjs/message.h"
#include "js/quickjs/navigator.h"
#include "js/quickjs/node.h"
#include "js/quickjs/screen.h"
#include "js/quickjs/text.h"
#include "js/quickjs/unibar.h"
#include "js/quickjs/url.h"
#include "js/quickjs/urlsearchparams.h"
#include "js/quickjs/window.h"
#include "js/quickjs/xhr.h"
#include "intl/libintl.h"
#include "main/select.h"
#include "osdep/newwin.h"
#include "osdep/osdep.h"
#include "osdep/sysname.h"
#include "protocol/http/http.h"
#include "protocol/uri.h"
#include "session/history.h"
#include "session/location.h"
#include "session/session.h"
#include "session/task.h"
#include "terminal/tab.h"
#include "terminal/terminal.h"
#include "util/conv.h"
#include "util/memcount.h"
#include "util/string.h"
#include "viewer/text/draw.h"
#include "viewer/text/form.h"
#include "viewer/text/link.h"
#include "viewer/text/view.h"
#include "viewer/text/vs.h"
#include "js/fetch.h"

Functions

static void quickjs_get_version (char *quickjs_version)
 
static const char * get_name_quickjs (struct module *xxx)
 
static int change_hook_quickjs_memory_limit (struct session *ses, struct option *current, struct option *changed)
 
static int change_hook_quickjs_gc_threshold (struct session *ses, struct option *current, struct option *changed)
 
static void quickjs_init (struct module *module)
 
static void quickjs_done (struct module *xxx)
 
int el_js_module_set_import_meta (JSContext *ctx, JSValueConst func_val, JS_BOOL use_realpath, JS_BOOL is_main)
 
JSModuleDef * el_js_module_loader (JSContext *ctx, const char *module_name, void *opaque)
 
void * quickjs_get_interpreter (struct ecmascript_interpreter *interpreter)
 
void quickjs_put_interpreter (struct ecmascript_interpreter *interpreter)
 
static void js_dump_obj (JSContext *ctx, struct string *f, JSValueConst val)
 
static void js_dump_error1 (JSContext *ctx, struct string *f, JSValueConst exception_val)
 
static void js_dump_error (JSContext *ctx, struct string *f)
 
static void error_reporter (struct ecmascript_interpreter *interpreter, JSContext *ctx)
 
void quickjs_eval (struct ecmascript_interpreter *interpreter, struct string *code, struct string *ret)
 
void quickjs_call_function (struct ecmascript_interpreter *interpreter, JSValueConst fun, struct string *ret)
 
char * quickjs_eval_stringback (struct ecmascript_interpreter *interpreter, struct string *code)
 
int quickjs_eval_boolback (struct ecmascript_interpreter *interpreter, struct string *code)
 

Variables

static JSRuntime * quickjs_runtime
 
void * map_interp
 
static long quickjs_memory_limit
 
static long quickjs_gc_threshold
 
static union option_info quickjs_options []
 
struct module quickjs_module
 

Function Documentation

◆ change_hook_quickjs_gc_threshold()

static int change_hook_quickjs_gc_threshold ( struct session * ses,
struct option * current,
struct option * changed )
static

◆ change_hook_quickjs_memory_limit()

static int change_hook_quickjs_memory_limit ( struct session * ses,
struct option * current,
struct option * changed )
static

◆ el_js_module_loader()

JSModuleDef * el_js_module_loader ( JSContext * ctx,
const char * module_name,
void * opaque )

◆ el_js_module_set_import_meta()

int el_js_module_set_import_meta ( JSContext * ctx,
JSValueConst func_val,
JS_BOOL use_realpath,
JS_BOOL is_main )

◆ error_reporter()

static void error_reporter ( struct ecmascript_interpreter * interpreter,
JSContext * ctx )
static

◆ get_name_quickjs()

static const char * get_name_quickjs ( struct module * xxx)
static

◆ js_dump_error()

static void js_dump_error ( JSContext * ctx,
struct string * f )
static

◆ js_dump_error1()

static void js_dump_error1 ( JSContext * ctx,
struct string * f,
JSValueConst exception_val )
static

◆ js_dump_obj()

static void js_dump_obj ( JSContext * ctx,
struct string * f,
JSValueConst val )
static

◆ quickjs_call_function()

void quickjs_call_function ( struct ecmascript_interpreter * interpreter,
JSValueConst fun,
struct string * ret )

◆ quickjs_done()

static void quickjs_done ( struct module * xxx)
static

◆ quickjs_eval()

void quickjs_eval ( struct ecmascript_interpreter * interpreter,
struct string * code,
struct string * ret )

◆ quickjs_eval_boolback()

int quickjs_eval_boolback ( struct ecmascript_interpreter * interpreter,
struct string * code )

◆ quickjs_eval_stringback()

char * quickjs_eval_stringback ( struct ecmascript_interpreter * interpreter,
struct string * code )

◆ quickjs_get_interpreter()

void * quickjs_get_interpreter ( struct ecmascript_interpreter * interpreter)

◆ quickjs_get_version()

static void quickjs_get_version ( char * quickjs_version)
static

◆ quickjs_init()

static void quickjs_init ( struct module * module)
static

◆ quickjs_put_interpreter()

void quickjs_put_interpreter ( struct ecmascript_interpreter * interpreter)

Variable Documentation

◆ map_interp

void* map_interp

◆ quickjs_gc_threshold

long quickjs_gc_threshold
static

◆ quickjs_memory_limit

long quickjs_memory_limit
static

◆ quickjs_module

struct module quickjs_module
Initial value:
N_("QuickJS"),
)
#define NULL
Definition explodename.c:35
#define N_(msg)
Definition libintl.h:25
#define struct_module(name, options, hooks, submods, data, init, done, getname)
Definition module.h:47
static const char * get_name_quickjs(struct module *xxx)
Definition quickjs.c:117
static union option_info quickjs_options[]
Definition quickjs.c:604
static void quickjs_done(struct module *xxx)
Definition quickjs.c:192
static void quickjs_init(struct module *module)
Definition quickjs.c:146

◆ quickjs_options

union option_info quickjs_options[]
static
Initial value:
= {
INIT_OPT_TREE("ecmascript", N_("QuickJS"),
"quickjs", OPT_ZERO,
N_("Options specific to QuickJS.")),
INIT_OPT_LONG("ecmascript.quickjs", N_("GC threshold"),
"gc_threshold", OPT_ZERO, 0, LONG_MAX, 32 * 1024 * 1024,
N_("GC threshold in bytes.")),
INIT_OPT_LONG("ecmascript.quickjs", N_("Memory limit"),
"memory_limit", OPT_ZERO, 0, LONG_MAX, 128 * 1024 * 1024,
N_("Runtime memory limit in bytes per context.")),
NULL_OPTION_INFO,
}
@ OPT_ZERO
Definition options.h:23
#define LONG_MAX
Definition types.h:50

◆ quickjs_runtime

JSRuntime* quickjs_runtime
static