mirror of
https://github.com/rkd77/elinks.git
synced 2024-12-04 14:46:47 -05:00
[quickjs] Moved initialization to the begining of function
Now test case (buildlogs) is successful
This commit is contained in:
parent
56870b5f38
commit
d275140984
@ -312,21 +312,15 @@ release_and_fail:
|
|||||||
void
|
void
|
||||||
quickjs_put_interpreter(struct ecmascript_interpreter *interpreter)
|
quickjs_put_interpreter(struct ecmascript_interpreter *interpreter)
|
||||||
{
|
{
|
||||||
#if 0
|
|
||||||
JSContext *ctx;
|
JSContext *ctx;
|
||||||
|
|
||||||
assert(interpreter);
|
assert(interpreter);
|
||||||
if (!js_module_init_ok) return;
|
|
||||||
|
|
||||||
ctx = interpreter->backend_data;
|
ctx = interpreter->backend_data;
|
||||||
if (interpreter->ac2) {
|
JS_FreeContext(ctx);
|
||||||
delete (JSAutoRealm *)interpreter->ac2;
|
interpreter->backend_data = nullptr;
|
||||||
}
|
|
||||||
// JS_DestroyContext(ctx);
|
|
||||||
interpreter->backend_data = NULL;
|
|
||||||
interpreter->ac = nullptr;
|
interpreter->ac = nullptr;
|
||||||
interpreter->ac2 = nullptr;
|
interpreter->ac2 = nullptr;
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* The SpiderMonkey window object implementation. */
|
/* The QuickJS input objects implementation. */
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
#ifdef HAVE_CONFIG_H
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
@ -52,6 +52,8 @@
|
|||||||
#define countof(x) (sizeof(x) / sizeof((x)[0]))
|
#define countof(x) (sizeof(x) / sizeof((x)[0]))
|
||||||
|
|
||||||
static JSClassID js_input_class_id;
|
static JSClassID js_input_class_id;
|
||||||
|
static std::map<struct form_state *, JSValueConst> map_inputs;
|
||||||
|
|
||||||
JSValue getInput(JSContext *ctx, struct form_state *fs);
|
JSValue getInput(JSContext *ctx, struct form_state *fs);
|
||||||
|
|
||||||
|
|
||||||
@ -1176,42 +1178,6 @@ js_input_set_property_value(JSContext *ctx, JSValueConst this_val, JSValue val)
|
|||||||
return JS_UNDEFINED;
|
return JS_UNDEFINED;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
|
||||||
/* XXX: Some of those are marked readonly just because we can't change them
|
|
||||||
* safely now. Changing default* values would affect all open instances of the
|
|
||||||
* document, leading to a potential security risk. Changing size and type would
|
|
||||||
* require re-rendering the document (TODO), tabindex would require renumbering
|
|
||||||
* of all links and whatnot. --pasky */
|
|
||||||
static JSPropertySpec input_props[] = {
|
|
||||||
JS_PSGS("accessKey", input_get_property_accessKey, input_set_property_accessKey, JSPROP_ENUMERATE),
|
|
||||||
JS_PSGS("alt", input_get_property_alt, input_set_property_alt, JSPROP_ENUMERATE),
|
|
||||||
JS_PSGS("checked", input_get_property_checked, input_set_property_checked, JSPROP_ENUMERATE),
|
|
||||||
JS_PSG("defaultChecked", input_get_property_defaultChecked, JSPROP_ENUMERATE),
|
|
||||||
JS_PSG("defaultValue",input_get_property_defaultValue, JSPROP_ENUMERATE),
|
|
||||||
JS_PSGS("disabled", input_get_property_disabled, input_set_property_disabled, JSPROP_ENUMERATE),
|
|
||||||
JS_PSG("form", input_get_property_form, JSPROP_ENUMERATE),
|
|
||||||
JS_PSGS("maxLength", input_get_property_maxLength, input_set_property_maxLength, JSPROP_ENUMERATE),
|
|
||||||
JS_PSGS("name", input_get_property_name, input_set_property_name, JSPROP_ENUMERATE),
|
|
||||||
JS_PSGS("readonly", input_get_property_readonly, input_set_property_readonly, JSPROP_ENUMERATE),
|
|
||||||
JS_PSGS("selectedIndex", input_get_property_selectedIndex, input_set_property_selectedIndex, JSPROP_ENUMERATE),
|
|
||||||
JS_PSG("size", input_get_property_size, JSPROP_ENUMERATE),
|
|
||||||
JS_PSGS("src", input_get_property_src, input_set_property_src,JSPROP_ENUMERATE),
|
|
||||||
JS_PSG("tabindex", input_get_property_tabIndex, JSPROP_ENUMERATE),
|
|
||||||
JS_PSG("type", input_get_property_type, JSPROP_ENUMERATE),
|
|
||||||
JS_PSGS("value", input_get_property_value, input_set_property_value, JSPROP_ENUMERATE),
|
|
||||||
JS_PS_END
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
static const spidermonkeyFunctionSpec input_funcs[] = {
|
|
||||||
{ "blur", input_blur, 0 },
|
|
||||||
{ "click", input_click, 0 },
|
|
||||||
{ "focus", input_focus, 0 },
|
|
||||||
{ "select", input_select, 0 },
|
|
||||||
{ NULL }
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static struct form_state *
|
static struct form_state *
|
||||||
js_input_get_form_state(JSContext *ctx, JSValueConst jsinput)
|
js_input_get_form_state(JSContext *ctx, JSValueConst jsinput)
|
||||||
@ -1221,11 +1187,6 @@ js_input_get_form_state(JSContext *ctx, JSValueConst jsinput)
|
|||||||
#endif
|
#endif
|
||||||
struct form_state *fs = JS_GetOpaque(jsinput, js_input_class_id);
|
struct form_state *fs = JS_GetOpaque(jsinput, js_input_class_id);
|
||||||
|
|
||||||
if (!fs) return NULL; /* detached */
|
|
||||||
|
|
||||||
// assert(fs->ecmascript_obj == jsinput);
|
|
||||||
// if_assert_failed return NULL;
|
|
||||||
|
|
||||||
return fs;
|
return fs;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1377,7 +1338,6 @@ static const JSCFunctionListEntry js_input_proto_funcs[] = {
|
|||||||
JS_CFUNC_DEF("select", 0 , js_input_select),
|
JS_CFUNC_DEF("select", 0 , js_input_select),
|
||||||
};
|
};
|
||||||
|
|
||||||
static std::map<struct form_state *, JSValueConst> map_inputs;
|
|
||||||
|
|
||||||
void
|
void
|
||||||
quickjs_detach_form_state(struct form_state *fs)
|
quickjs_detach_form_state(struct form_state *fs)
|
||||||
@ -1477,16 +1437,17 @@ getInput(JSContext *ctx, struct form_state *fs)
|
|||||||
#ifdef ECMASCRIPT_DEBUG
|
#ifdef ECMASCRIPT_DEBUG
|
||||||
fprintf(stderr, "%s:%s\n", __FILE__, __FUNCTION__);
|
fprintf(stderr, "%s:%s\n", __FILE__, __FUNCTION__);
|
||||||
#endif
|
#endif
|
||||||
auto node_find = map_inputs.find(fs);
|
|
||||||
|
|
||||||
if (node_find != map_inputs.end()) {
|
|
||||||
return JS_DupValue(ctx, node_find->second);
|
|
||||||
}
|
|
||||||
static int initialized;
|
static int initialized;
|
||||||
if (!initialized) {
|
if (!initialized) {
|
||||||
JS_NewClassID(&js_input_class_id);
|
JS_NewClassID(&js_input_class_id);
|
||||||
JS_NewClass(JS_GetRuntime(ctx), js_input_class_id, &js_input_class);
|
JS_NewClass(JS_GetRuntime(ctx), js_input_class_id, &js_input_class);
|
||||||
initialized = 1;
|
initialized = 1;
|
||||||
|
map_inputs.clear();
|
||||||
|
}
|
||||||
|
auto node_find = map_inputs.find(fs);
|
||||||
|
|
||||||
|
if (node_find != map_inputs.end()) {
|
||||||
|
return JS_DupValue(ctx, node_find->second);
|
||||||
}
|
}
|
||||||
JSValue input_obj = JS_NewObjectClass(ctx, js_input_class_id);
|
JSValue input_obj = JS_NewObjectClass(ctx, js_input_class_id);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user