0
0
mirror of https://github.com/rkd77/elinks.git synced 2025-06-30 22:19:29 -04:00

[ecmascript] nullptr everywhere

This commit is contained in:
Witold Filipczyk 2021-08-26 15:44:32 +02:00
parent b825f4abf1
commit 34e878a0da
13 changed files with 257 additions and 80 deletions

View File

@ -36,9 +36,17 @@
static bool console_get_property(JSContext *ctx, JS::HandleObject hobj, JS::HandleId hid, JS::MutableHandleValue hvp);
JSClassOps console_ops = {
nullptr, nullptr,
console_get_property, nullptr,
nullptr, nullptr, nullptr
nullptr, // addProperty
nullptr, // deleteProperty
nullptr, // enumerate
nullptr, // newEnumerate
nullptr, // resolve
nullptr, // mayResolve
nullptr, // finalize
nullptr, // call
nullptr, // hasInstance
nullptr, // construct
nullptr // trace JS_GlobalObjectTraceHook
};
/* Each @console_class object must have a @window_class parent. */

View File

@ -62,9 +62,17 @@ static JSObject *getDoctype(JSContext *ctx, void *node);
static bool document_get_property(JSContext *ctx, JS::HandleObject hobj, JS::HandleId hid, JS::MutableHandleValue hvp);
JSClassOps document_ops = {
nullptr, nullptr,
document_get_property, nullptr,
nullptr, nullptr, nullptr
nullptr, // addProperty
nullptr, // deleteProperty
nullptr, // enumerate
nullptr, // newEnumerate
nullptr, // resolve
nullptr, // mayResolve
nullptr, // finalize
nullptr, // call
nullptr, // hasInstance
nullptr, // construct
nullptr // trace JS_GlobalObjectTraceHook
};
@ -1702,12 +1710,19 @@ document_getElementsByTagName(JSContext *ctx, unsigned int argc, JS::Value *vp)
}
JSClassOps doctype_ops = {
nullptr, nullptr,
nullptr, nullptr,
nullptr, nullptr, nullptr
nullptr, // addProperty
nullptr, // deleteProperty
nullptr, // enumerate
nullptr, // newEnumerate
nullptr, // resolve
nullptr, // mayResolve
nullptr, // finalize
nullptr, // call
nullptr, // hasInstance
nullptr, // construct
nullptr // trace JS_GlobalObjectTraceHook};
};
JSClass doctype_class = {
"doctype",
JSCLASS_HAS_PRIVATE,

View File

@ -93,9 +93,17 @@ static bool element_get_property_title(JSContext *ctx, unsigned int argc, JS::Va
static bool element_set_property_title(JSContext *ctx, unsigned int argc, JS::Value *vp);
JSClassOps element_ops = {
nullptr, nullptr,
nullptr, nullptr,
nullptr, nullptr, nullptr, nullptr
nullptr, // addProperty
nullptr, // deleteProperty
nullptr, // enumerate
nullptr, // newEnumerate
nullptr, // resolve
nullptr, // mayResolve
nullptr, // finalize
nullptr, // call
nullptr, // hasInstance
nullptr, // construct
nullptr // trace JS_GlobalObjectTraceHook
};
JSClass element_class = {
@ -2433,9 +2441,17 @@ static bool htmlCollection_item2(JSContext *ctx, JS::HandleObject hobj, int inde
static bool htmlCollection_namedItem2(JSContext *ctx, JS::HandleObject hobj, char *str, JS::MutableHandleValue hvp);
JSClassOps htmlCollection_ops = {
nullptr, nullptr,
htmlCollection_get_property, nullptr,
nullptr, nullptr, nullptr, nullptr
nullptr, // addProperty
nullptr, // deleteProperty
nullptr, // enumerate
nullptr, // newEnumerate
nullptr, // resolve
nullptr, // mayResolve
nullptr, // finalize
nullptr, // call
nullptr, // hasInstance
nullptr, // construct
nullptr // trace JS_GlobalObjectTraceHook
};
JSClass htmlCollection_class = {
@ -2696,9 +2712,17 @@ static bool nodeList_get_property(JSContext *ctx, JS::HandleObject hobj, JS::Han
static bool nodeList_item2(JSContext *ctx, JS::HandleObject hobj, int index, JS::MutableHandleValue hvp);
JSClassOps nodeList_ops = {
nullptr, nullptr,
nodeList_get_property, nullptr,
nullptr, nullptr, nullptr, nullptr
nullptr, // addProperty
nullptr, // deleteProperty
nullptr, // enumerate
nullptr, // newEnumerate
nullptr, // resolve
nullptr, // mayResolve
nullptr, // finalize
nullptr, // call
nullptr, // hasInstance
nullptr, // construct
nullptr // trace JS_GlobalObjectTraceHook
};
JSClass nodeList_class = {
@ -2886,9 +2910,17 @@ static bool attributes_item2(JSContext *ctx, JS::HandleObject hobj, int index, J
static bool attributes_namedItem2(JSContext *ctx, JS::HandleObject hobj, char *str, JS::MutableHandleValue hvp);
JSClassOps attributes_ops = {
nullptr, nullptr,
attributes_get_property, nullptr,
nullptr, nullptr, nullptr, nullptr
nullptr, // addProperty
nullptr, // deleteProperty
nullptr, // enumerate
nullptr, // newEnumerate
nullptr, // resolve
nullptr, // mayResolve
nullptr, // finalize
nullptr, // call
nullptr, // hasInstance
nullptr, // construct
nullptr // trace JS_GlobalObjectTraceHook
};
JSClass attributes_class = {
@ -3143,9 +3175,17 @@ static bool attr_get_property_name(JSContext *ctx, unsigned int argc, JS::Value
static bool attr_get_property_value(JSContext *ctx, unsigned int argc, JS::Value *vp);
JSClassOps attr_ops = {
nullptr, nullptr,
nullptr, nullptr,
nullptr, nullptr, nullptr, nullptr
nullptr, // addProperty
nullptr, // deleteProperty
nullptr, // enumerate
nullptr, // newEnumerate
nullptr, // resolve
nullptr, // mayResolve
nullptr, // finalize
nullptr, // call
nullptr, // hasInstance
nullptr, // construct
nullptr // trace JS_GlobalObjectTraceHook
};
JSClass attr_class = {

View File

@ -68,9 +68,17 @@ static bool form_set_property_target(JSContext *ctx, unsigned int argc, JS::Valu
static void form_finalize(JSFreeOp *op, JSObject *obj);
static JSClassOps form_ops = {
nullptr, nullptr,
form_get_property, nullptr,
nullptr, nullptr, nullptr, form_finalize
nullptr, // addProperty
nullptr, // deleteProperty
nullptr, // enumerate
nullptr, // newEnumerate
nullptr, // resolve
nullptr, // mayResolve
nullptr, // finalize
nullptr, // call
nullptr, // hasInstance
nullptr, // construct
nullptr // trace JS_GlobalObjectTraceHook
};
/* Each @form_class object must have a @document_class parent. */
@ -80,8 +88,6 @@ static JSClass form_class = {
&form_ops
};
/* Accordingly to the JS specs, each input type should own object. That'd be a
* huge PITA though, however DOM comes to the rescue and defines just a single
* HTMLInputElement. The difference could be spotted only by some clever tricky
@ -92,9 +98,17 @@ static bool input_set_property(JSContext *ctx, JS::HandleObject hobj, JS::Handle
static void input_finalize(JSFreeOp *op, JSObject *obj);
static JSClassOps input_ops = {
nullptr, nullptr,
input_get_property, input_set_property,
nullptr, nullptr, nullptr, input_finalize
nullptr, // addProperty
nullptr, // deleteProperty
nullptr, // enumerate
nullptr, // newEnumerate
nullptr, // resolve
nullptr, // mayResolve
nullptr, // finalize
nullptr, // call
nullptr, // hasInstance
nullptr, // construct
nullptr // trace JS_GlobalObjectTraceHook
};
/* Each @input_class object must have a @form_class parent. */
@ -1708,9 +1722,17 @@ static struct form_view *form_get_form_view(JSContext *ctx, JSObject *jsform, JS
static bool form_elements_get_property(JSContext *ctx, JS::HandleObject hobj, JS::HandleId hid, JS::MutableHandleValue hvp);
static JSClassOps form_elements_ops = {
nullptr, nullptr,
form_elements_get_property, nullptr,
nullptr, nullptr, nullptr, nullptr
nullptr, // addProperty
nullptr, // deleteProperty
nullptr, // enumerate
nullptr, // newEnumerate
nullptr, // resolve
nullptr, // mayResolve
nullptr, // finalize
nullptr, // call
nullptr, // hasInstance
nullptr, // construct
nullptr // trace JS_GlobalObjectTraceHook
};
/* Each @form_elements_class object must have a @form_class parent. */
@ -2871,9 +2893,17 @@ static bool forms_get_property(JSContext *ctx, JS::HandleObject hobj, JS::Handle
static bool forms_get_property_length(JSContext *ctx, unsigned int argc, JS::Value *vp);
JSClassOps forms_ops = {
nullptr, nullptr,
forms_get_property, nullptr,
nullptr, nullptr, nullptr, nullptr
nullptr, // addProperty
nullptr, // deleteProperty
nullptr, // enumerate
nullptr, // newEnumerate
nullptr, // resolve
nullptr, // mayResolve
nullptr, // finalize
nullptr, // call
nullptr, // hasInstance
nullptr, // construct
nullptr // trace JS_GlobalObjectTraceHook
};
/* Each @forms_class object must have a @document_class parent. */

View File

@ -99,9 +99,17 @@ saveToStorage(unsigned char *key, unsigned char *val)
static bool localstorage_get_property(JSContext *ctx, JS::HandleObject hobj, JS::HandleId hid, JS::MutableHandleValue hvp);
JSClassOps localstorage_ops = {
nullptr, nullptr,
localstorage_get_property, nullptr,
nullptr, nullptr, nullptr
nullptr, // addProperty
nullptr, // deleteProperty
nullptr, // enumerate
nullptr, // newEnumerate
nullptr, // resolve
nullptr, // mayResolve
nullptr, // finalize
nullptr, // call
nullptr, // hasInstance
nullptr, // construct
nullptr // trace JS_GlobalObjectTraceHook
};
/* Each @localstorage_class object must have a @window_class parent. */

View File

@ -51,9 +51,17 @@ static bool history_forward(JSContext *ctx, unsigned int argc, JS::Value *rval);
static bool history_go(JSContext *ctx, unsigned int argc, JS::Value *rval);
JSClassOps history_ops = {
nullptr, nullptr,
nullptr, nullptr,
nullptr, nullptr, nullptr, nullptr
nullptr, // addProperty
nullptr, // deleteProperty
nullptr, // enumerate
nullptr, // newEnumerate
nullptr, // resolve
nullptr, // mayResolve
nullptr, // finalize
nullptr, // call
nullptr, // hasInstance
nullptr, // construct
nullptr // trace JS_GlobalObjectTraceHook
};
JSClass history_class = {
@ -182,9 +190,17 @@ static bool location_get_property_search(JSContext *ctx, unsigned int argc, JS::
static bool location_set_property_search(JSContext *ctx, unsigned int argc, JS::Value *vp);
JSClassOps location_ops = {
nullptr, nullptr,
nullptr, nullptr,
nullptr, nullptr, nullptr, nullptr
nullptr, // addProperty
nullptr, // deleteProperty
nullptr, // enumerate
nullptr, // newEnumerate
nullptr, // resolve
nullptr, // mayResolve
nullptr, // finalize
nullptr, // call
nullptr, // hasInstance
nullptr, // construct
nullptr // trace JS_GlobalObjectTraceHook
};
/* Each @location_class object must have a @window_class parent. */
JSClass location_class = {

View File

@ -52,9 +52,17 @@ static bool navigator_get_property_platform(JSContext *ctx, unsigned int argc, J
static bool navigator_get_property_userAgent(JSContext *ctx, unsigned int argc, JS::Value *vp);
JSClassOps navigator_ops = {
nullptr, nullptr,
nullptr, nullptr,
nullptr, nullptr, nullptr, nullptr
nullptr, // addProperty
nullptr, // deleteProperty
nullptr, // enumerate
nullptr, // newEnumerate
nullptr, // resolve
nullptr, // mayResolve
nullptr, // finalize
nullptr, // call
nullptr, // hasInstance
nullptr, // construct
nullptr // trace JS_GlobalObjectTraceHook
};
JSClass navigator_class = {

View File

@ -46,9 +46,17 @@
#include "viewer/text/vs.h"
JSClassOps screen_ops = {
nullptr, nullptr,
nullptr, nullptr,
nullptr, nullptr, nullptr, nullptr
nullptr, // addProperty
nullptr, // deleteProperty
nullptr, // enumerate
nullptr, // newEnumerate
nullptr, // resolve
nullptr, // mayResolve
nullptr, // finalize
nullptr, // call
nullptr, // hasInstance
nullptr, // construct
nullptr // trace JS_GlobalObjectTraceHook
};
JSClass screen_class = {

View File

@ -49,9 +49,17 @@ static bool unibar_get_property_visible(JSContext *ctx, unsigned int argc, JS::V
static bool unibar_set_property_visible(JSContext *ctx, unsigned int argc, JS::Value *vp);
JSClassOps menubar_ops = {
nullptr, nullptr,
nullptr, nullptr,
nullptr, nullptr, nullptr, nullptr
nullptr, // addProperty
nullptr, // deleteProperty
nullptr, // enumerate
nullptr, // newEnumerate
nullptr, // resolve
nullptr, // mayResolve
nullptr, // finalize
nullptr, // call
nullptr, // hasInstance
nullptr, // construct
nullptr // trace JS_GlobalObjectTraceHook
};
/* Each @menubar_class object must have a @window_class parent. */
@ -62,9 +70,17 @@ JSClass menubar_class = {
};
JSClassOps statusbar_ops = {
nullptr, nullptr,
nullptr, nullptr,
nullptr, nullptr, nullptr, nullptr
nullptr, // addProperty
nullptr, // deleteProperty
nullptr, // enumerate
nullptr, // newEnumerate
nullptr, // resolve
nullptr, // mayResolve
nullptr, // finalize
nullptr, // call
nullptr, // hasInstance
nullptr, // construct
nullptr // trace JS_GlobalObjectTraceHook
};
/* Each @statusbar_class object must have a @window_class parent. */
JSClass statusbar_class = {

View File

@ -54,9 +54,17 @@ static bool window_set_property_status(JSContext *ctx, unsigned int argc, JS::Va
static bool window_get_property_top(JSContext *ctx, unsigned int argc, JS::Value *vp);
JSClassOps window_ops = {
nullptr, nullptr,
window_get_property, nullptr,
nullptr, nullptr, nullptr, nullptr
nullptr, // addProperty
nullptr, // deleteProperty
nullptr, // enumerate
nullptr, // newEnumerate
nullptr, // resolve
nullptr, // mayResolve
nullptr, // finalize
nullptr, // call
nullptr, // hasInstance
nullptr, // construct
nullptr // trace JS_GlobalObjectTraceHook
};
JSClass window_class = {
@ -165,15 +173,20 @@ window_get_property(JSContext *ctx, JS::HandleObject hobj, JS::HandleId hid, JS:
* everything's fine. */
if (JSID_IS_STRING(hid)) {
struct document_view *doc_view = vs->doc_view;
JSObject *obj = try_resolve_frame(doc_view, jsid_to_string(ctx, hid));
/* TODO: Try other lookups (mainly element lookup) until
* something yields data. */
if (obj) {
hvp.setObject(*obj);
} else {
hvp.setNull();
const char *str = jsid_to_string(ctx, hid);
if (str) {
JSObject *obj = try_resolve_frame(doc_view, str);
/* TODO: Try other lookups (mainly element lookup) until
* something yields data. */
if (obj) {
hvp.setObject(*obj);
} else {
hvp.setNull();
}
return true;
}
return true;
}
if (!JSID_IS_INT(hid))
@ -476,9 +489,11 @@ window_get_property_self(JSContext *ctx, unsigned int argc, JS::Value *vp)
fprintf(stderr, "%s:%s\n", __FILE__, __FUNCTION__);
#endif
JS::CallArgs args = CallArgsFromVp(argc, vp);
args.rval().setObject(args.thisv().toObject());
JS::RootedObject hobj(ctx, &args.thisv().toObject());
return true;
args.rval().setObject(*hobj);
return false;
}
static bool

View File

@ -10,7 +10,7 @@
#include "config/home.h"
#include "ecmascript/spidermonkey-shared.h"
#include <jsprf.h>
#include <js/Printf.h>
#include "intl/charsets.h"
#include "main/module.h"
#include "osdep/osdep.h"
@ -40,6 +40,8 @@ static bool
PrintError(JSContext* cx, FILE* file, JS::ConstUTF8CharsZ toStringResult,
JSErrorReport* report, bool reportWarnings)
{
return true;
#if 0
MOZ_ASSERT(report);
/* Conditionally ignore reported warnings. */
@ -112,6 +114,7 @@ PrintError(JSContext* cx, FILE* file, JS::ConstUTF8CharsZ toStringResult,
fflush(file);
JS_free(cx, prefix);
return true;
#endif
}
@ -119,6 +122,8 @@ PrintError(JSContext* cx, FILE* file, JS::ConstUTF8CharsZ toStringResult,
static void
error_reporter(JSContext *ctx, JSErrorReport *report)
{
return;
#if 0
char *strict, *exception, *warning, *error;
struct string msg;
char *prefix = nullptr;
@ -152,6 +157,8 @@ error_reporter(JSContext *ctx, JSErrorReport *report)
if (prefix) {
add_to_string(&msg, prefix);
}
#endif
#if 0
if (report->linebuf) {
@ -164,11 +171,13 @@ error_reporter(JSContext *ctx, JSErrorReport *report)
}
#endif
#if 0
alert_smjs_error(msg.source);
done_string(&msg);
reported:
JS_ClearPendingException(ctx);
#endif
}
static int

View File

@ -36,10 +36,14 @@ static void session_finalize(JSFreeOp *op, JSObject *obj);
static bool session_construct(JSContext *ctx, unsigned int argc, JS::Value *rval);
static const JSClassOps session_ops = {
nullptr, nullptr,
session_get_property, session_set_property,
nullptr, nullptr, nullptr, session_finalize,
NULL, NULL, NULL, session_construct
nullptr, /* addProperty */
nullptr, /* delProperty */
session_get_property, /* enumerate */
session_set_property, /* newEnumerate */
nullptr, /* resolve */
nullptr, /* mayResolve */
session_finalize, //TypeDescr::finalize,
session_construct//ScalarTypeDescr::call
};
static const JSClass session_class = {
@ -1088,7 +1092,7 @@ session_array_get_property(JSContext *ctx, JS::HandleObject hobj, JS::HandleId h
static const JSClassOps session_array_ops = {
nullptr, nullptr,
session_array_get_property, nullptr,
nullptr, nullptr, nullptr, nullptr
nullptr, nullptr, nullptr
};
static const JSClass session_array_class = {

View File

@ -312,6 +312,6 @@ smjs_init_view_state_interface(void)
JS::RootedObject r_smjs_elinks_object(smjs_ctx, smjs_elinks_object);
JS_DefineProperty(smjs_ctx, r_smjs_elinks_object, "vs", (int32_t)0,
(unsigned int)(JSPROP_ENUMERATE | JSPROP_PERMANENT | JSPROP_READONLY), smjs_elinks_get_view_state, nullptr/*JS_StrictPropertyStub*/
(unsigned int)(JSPROP_ENUMERATE | JSPROP_PERMANENT | JSPROP_READONLY), smjs_elinks_get_view_state
);
}