| compat.h | | compat.h | |
| | | | |
| skipping to change at line 41 | | skipping to change at line 41 | |
| | | | |
| #include <jsapi.h> | | #include <jsapi.h> | |
| #include <glib.h> | | #include <glib.h> | |
| | | | |
| G_BEGIN_DECLS | | G_BEGIN_DECLS | |
| | | | |
| /* This file inspects jsapi.h and attempts to provide a compatibility shim. | | /* This file inspects jsapi.h and attempts to provide a compatibility shim. | |
| * See https://bugzilla.gnome.org/show_bug.cgi?id=622896 for some initial d
iscussion. | | * See https://bugzilla.gnome.org/show_bug.cgi?id=622896 for some initial d
iscussion. | |
| */ | | */ | |
| | | | |
|
| /* The old JS_AddRoot accepted anything via void *, new | | | |
| * api is stricter. | | | |
| * Upstream commit 2fc2a12a4565, Spidermonkey >= Jun 07 2010 | | | |
| */ | | | |
| #ifndef JS_TYPED_ROOTING_API | | | |
| #define JS_AddValueRoot JS_AddRoot | | | |
| #define JS_AddObjectRoot JS_AddRoot | | | |
| #define JS_AddStringRoot JS_AddRoot | | | |
| #define JS_AddGCThingRoot JS_AddRoot | | | |
| #define JS_RemoveValueRoot JS_RemoveRoot | | | |
| #define JS_RemoveObjectRoot JS_RemoveRoot | | | |
| #define JS_RemoveStringRoot JS_RemoveRoot | | | |
| #define JS_RemoveGCThingRoot JS_RemoveRoot | | | |
| #endif | | | |
| | | | |
| /* commit 5ad4532aa996, Spidermonkey > Jun 17 2010 | | | |
| * This one is complex; jsid appears to be explicitly | | | |
| * different from JSVAL now. If we're on an old xulrunner, | | | |
| * define JSID_IS_VOID in a compatible way. | | | |
| */ | | | |
| #ifndef JSID_VOID | | | |
| #define JSID_VOID JSVAL_VOID | | | |
| #define JSID_IS_VOID(id) (id == JSVAL_VOID) | | | |
| #define INT_TO_JSID(i) ((jsid) INT_TO_JSVAL(i)) | | | |
| #endif | | | |
| | | | |
| /* commit 66c8ad02543b, Spidermonkey > Aug 16 2010 | | | |
| * "Slow natives" */ | | | |
| #ifdef JSFUN_CONSTRUCTOR | | | |
| /* All functions are "fast", so define this to a no-op */ | | | |
| #define JSFUN_FAST_NATIVE 0 | | | |
| | | | |
| /** | | /** | |
| * GJS_NATIVE_CONSTRUCTOR_DECLARE: | | * GJS_NATIVE_CONSTRUCTOR_DECLARE: | |
| * Prototype a constructor. | | * Prototype a constructor. | |
| */ | | */ | |
| #define GJS_NATIVE_CONSTRUCTOR_DECLARE(name) \ | | #define GJS_NATIVE_CONSTRUCTOR_DECLARE(name) \ | |
| static JSBool \ | | static JSBool \ | |
| gjs_##name##_constructor(JSContext *context, \ | | gjs_##name##_constructor(JSContext *context, \ | |
| uintN argc, \ | | uintN argc, \ | |
| jsval *vp) | | jsval *vp) | |
| | | | |
| | | | |
| skipping to change at line 98 | | skipping to change at line 66 | |
| #define GJS_NATIVE_CONSTRUCTOR_VARIABLES(name) \ | | #define GJS_NATIVE_CONSTRUCTOR_VARIABLES(name) \ | |
| JSObject *object = NULL; \ | | JSObject *object = NULL; \ | |
| jsval *argv = JS_ARGV(context, vp); | | jsval *argv = JS_ARGV(context, vp); | |
| | | | |
| /** | | /** | |
| * GJS_NATIVE_CONSTRUCTOR_PRELUDE: | | * GJS_NATIVE_CONSTRUCTOR_PRELUDE: | |
| * Call after the initial variable declaration. | | * Call after the initial variable declaration. | |
| */ | | */ | |
| #define GJS_NATIVE_CONSTRUCTOR_PRELUDE(name)
\ | | #define GJS_NATIVE_CONSTRUCTOR_PRELUDE(name)
\ | |
| {
\ | | {
\ | |
|
| if (!JS_IsConstructing_PossiblyWithGivenThisObject(context, vp, &ob
ject)) { \ | | if (!JS_IsConstructing(context, vp)) { \ | |
| gjs_throw_constructor_error(context);
\ | | gjs_throw_constructor_error(context);
\ | |
| return JS_FALSE;
\ | | return JS_FALSE;
\ | |
| }
\ | | }
\ | |
|
| if (object == NULL) | | object = JS_NewObjectForConstructor(context, vp); | |
| \ | | \ | |
| object = JS_NewObjectForConstructor(context, vp); | | | |
| \ | | | |
| if (object == NULL)
\ | | if (object == NULL)
\ | |
| return JS_FALSE;
\ | | return JS_FALSE;
\ | |
| } | | } | |
| | | | |
| /** | | /** | |
| * GJS_NATIVE_CONSTRUCTOR_FINISH: | | * GJS_NATIVE_CONSTRUCTOR_FINISH: | |
| * Call this at the end of a constructor when it's completed | | * Call this at the end of a constructor when it's completed | |
| * successfully. | | * successfully. | |
| */ | | */ | |
| #define GJS_NATIVE_CONSTRUCTOR_FINISH(name) \ | | #define GJS_NATIVE_CONSTRUCTOR_FINISH(name) \ | |
| JS_SET_RVAL(context, vp, OBJECT_TO_JSVAL(object)); | | JS_SET_RVAL(context, vp, OBJECT_TO_JSVAL(object)); | |
|
| #else | | | |
| | | | |
| #define GJS_NATIVE_CONSTRUCTOR_DECLARE(name) \ | | | |
| static JSBool \ | | | |
| gjs_##name##_constructor(JSContext *context, \ | | | |
| JSObject *object, \ | | | |
| uintN argc, \ | | | |
| jsval *argv, \ | | | |
| jsval *retval) | | | |
| | | | |
| #define GJS_NATIVE_CONSTRUCTOR_VARIABLES(name) | | | |
| | | | |
| #define GJS_NATIVE_CONSTRUCTOR_PRELUDE(name) \ | | | |
| if (!JS_IsConstructing(context)) { \ | | | |
| gjs_throw_constructor_error(context); \ | | | |
| return JS_FALSE; \ | | | |
| } | | | |
| | | | |
| #define GJS_NATIVE_CONSTRUCTOR_FINISH(name) | | | |
| | | | |
| #endif | | | |
| | | | |
| #ifndef HAVE_JS_STRICTPROPERTYSTUB | | | |
| #define JS_StrictPropertyStub JS_PropertyStub | | | |
| #endif | | | |
| | | | |
| #ifndef HAVE_JS_GETGLOBALFORSCOPECHAIN | | | |
| #define JS_GetGlobalForScopeChain JS_GetScopeChain | | | |
| #endif | | | |
| | | | |
| G_END_DECLS | | G_END_DECLS | |
| | | | |
| #endif /* __GJS_COMPAT_H__ */ | | #endif /* __GJS_COMPAT_H__ */ | |
| | | | |
End of changes. 4 change blocks. |
| 66 lines changed or deleted | | 3 lines changed or added | |
|
| object.h | | object.h | |
| | | | |
| skipping to change at line 47 | | skipping to change at line 47 | |
| GType gtype, | | GType gtype, | |
| JSObject **constructor_p, | | JSObject **constructor_p, | |
| JSObject **prototype_p, | | JSObject **prototype_p, | |
| GIObjectInfo **class_info_p); | | GIObjectInfo **class_info_p); | |
| JSObject* gjs_lookup_object_prototype (JSContext *context, | | JSObject* gjs_lookup_object_prototype (JSContext *context, | |
| GType gtype); | | GType gtype); | |
| JSObject* gjs_object_from_g_object (JSContext *context, | | JSObject* gjs_object_from_g_object (JSContext *context, | |
| GObject *gobj); | | GObject *gobj); | |
| GObject* gjs_g_object_from_object (JSContext *context, | | GObject* gjs_g_object_from_object (JSContext *context, | |
| JSObject *obj); | | JSObject *obj); | |
|
| | | GType gjs_gtype_from_value (JSContext *context, | |
| | | jsval value); | |
| | | | |
| G_END_DECLS | | G_END_DECLS | |
| | | | |
| #endif /* __GJS_OBJECT_H__ */ | | #endif /* __GJS_OBJECT_H__ */ | |
| | | | |
End of changes. 1 change blocks. |
| 0 lines changed or deleted | | 2 lines changed or added | |
|