From 6e0d4374c15551cea5ac4d9781488803ec4a2390 Mon Sep 17 00:00:00 2001 From: Miciah Dashiel Butler Masters Date: Sun, 18 Dec 2005 17:47:54 +0000 Subject: [PATCH] Add the "elinks" object. --- src/scripting/smjs/Makefile | 2 +- src/scripting/smjs/core.c | 4 ++++ src/scripting/smjs/core.h | 1 + src/scripting/smjs/elinks_object.c | 29 +++++++++++++++++++++++++++++ src/scripting/smjs/elinks_object.h | 8 ++++++++ 5 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 src/scripting/smjs/elinks_object.c create mode 100644 src/scripting/smjs/elinks_object.h diff --git a/src/scripting/smjs/Makefile b/src/scripting/smjs/Makefile index 2c82059f..99d70c29 100644 --- a/src/scripting/smjs/Makefile +++ b/src/scripting/smjs/Makefile @@ -3,6 +3,6 @@ include $(top_builddir)/Makefile.config INCLUDES += $(SPIDERMONKEY_CFLAGS) -OBJS = smjs.o core.o +OBJS = smjs.o core.o elinks_object.o include $(top_srcdir)/Makefile.lib diff --git a/src/scripting/smjs/core.c b/src/scripting/smjs/core.c index acc3d7dc..f0716b8e 100644 --- a/src/scripting/smjs/core.c +++ b/src/scripting/smjs/core.c @@ -10,6 +10,7 @@ #include "main/module.h" #include "scripting/scripting.h" #include "scripting/smjs/core.h" +#include "scripting/smjs/elinks_object.h" #include "scripting/smjs/smjs.h" #include "util/string.h" @@ -17,6 +18,7 @@ #define SMJS_HOOKS_FILENAME "hooks.js" JSContext *smjs_ctx; +JSObject *smjs_elinks_object; struct session *smjs_ses; @@ -88,6 +90,8 @@ init_smjs(struct module *module) if (!global_object) return; JS_InitStandardClasses(smjs_ctx, global_object); + + smjs_elinks_object = smjs_get_elinks_object(global_object); } void diff --git a/src/scripting/smjs/core.h b/src/scripting/smjs/core.h index 5777d718..87786d31 100644 --- a/src/scripting/smjs/core.h +++ b/src/scripting/smjs/core.h @@ -8,6 +8,7 @@ struct session; struct string; extern JSContext *smjs_ctx; +JSObject *smjs_elinks_object; struct session *smjs_ses; void alert_smjs_error(unsigned char *msg); diff --git a/src/scripting/smjs/elinks_object.c b/src/scripting/smjs/elinks_object.c new file mode 100644 index 00000000..73310d06 --- /dev/null +++ b/src/scripting/smjs/elinks_object.c @@ -0,0 +1,29 @@ +/* The "elinks" object */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "ecmascript/spidermonkey/util.h" +#include "scripting/scripting.h" +#include "scripting/smjs/core.h" +#include "scripting/smjs/elinks_object.h" + + +static const JSClass elinks_class = { + "elinks", + 0, + JS_PropertyStub, JS_PropertyStub, + JS_PropertyStub, JS_PropertyStub, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + +JSObject * +smjs_get_elinks_object(JSObject *global_object) +{ + return JS_InitClass(smjs_ctx, global_object, NULL, + (JSClass *) &elinks_class, NULL, 0, NULL, + NULL, NULL, NULL); +} diff --git a/src/scripting/smjs/elinks_object.h b/src/scripting/smjs/elinks_object.h new file mode 100644 index 00000000..ed10c13f --- /dev/null +++ b/src/scripting/smjs/elinks_object.h @@ -0,0 +1,8 @@ +#ifndef EL__SCRIPTING_SMJS_ELINKS_OBJECT_H +#define EL__SCRIPTING_SMJS_ELINKS_OBJECT_H + +#include "ecmascript/spidermonkey/util.h" + +JSObject *smjs_get_elinks_object(JSObject *global_object); + +#endif