From ec43456e4bf0968bc68b437733199ad2af609c1e Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Fri, 23 Nov 2012 13:48:11 +0000 Subject: use unshared type handler for all events on window --- javascript/jsapi.h | 27 +++++++++++++++++++++------ javascript/jsapi/location.bnd | 1 + javascript/jsapi/window.bnd | 10 ++++++++++ 3 files changed, 32 insertions(+), 6 deletions(-) (limited to 'javascript') diff --git a/javascript/jsapi.h b/javascript/jsapi.h index 718dd2021..6b0f1124d 100644 --- a/javascript/jsapi.h +++ b/javascript/jsapi.h @@ -74,9 +74,9 @@ /* native proprty definition */ #define JSAPI_PROP_GETTER(name, cx, obj, vp) \ - jsapi_property_##name##_get(cx, obj, jsval id, vp) + jsapi_property_##name##_get(cx, obj, jsval jsapi_id, vp) #define JSAPI_PROP_SETTER(name, cx, obj, vp) \ - jsapi_property_##name##_set(cx, obj, jsval id, vp) + jsapi_property_##name##_set(cx, obj, jsval jsapi_id, vp) /* native property return value */ #define JSAPI_PROP_RVAL(cx, vp) (vp) @@ -84,6 +84,9 @@ /* native property getter return value */ #define JSAPI_PROP_SET_RVAL(cx, vp, v) (*(vp) = (v)) +/* native property ID value as a jsval */ +#define JSAPI_PROP_IDVAL(cx, vp) (*(vp) = jsapi_id) + /* native property specifier */ #define JSAPI_PS(name, fnname, tinyid, flags) \ { name , tinyid , flags , jsapi_property_##fnname##_get , jsapi_property_##fnname##_set } @@ -183,11 +186,14 @@ JS_NewCompartmentAndGlobalObject(JSContext *cx, /* The object instance in a native call */ #define JSAPI_THIS_OBJECT(cx,vp) jsapi_this + + + /* proprty native calls */ #define JSAPI_PROP_GETTER(name, cx, obj, vp) \ - jsapi_property_##name##_get(cx, obj, jsval id, vp) + jsapi_property_##name##_get(cx, obj, jsval jsapi_id, vp) #define JSAPI_PROP_SETTER(name, cx, obj, vp) \ - jsapi_property_##name##_set(cx, obj, jsval id, vp) + jsapi_property_##name##_set(cx, obj, jsval jsapi_id, vp) /* native property return value */ #define JSAPI_PROP_RVAL JS_RVAL @@ -195,6 +201,9 @@ JS_NewCompartmentAndGlobalObject(JSContext *cx, /* native property return value setter */ #define JSAPI_PROP_SET_RVAL JS_SET_RVAL +/* native property ID value as a jsval */ +#define JSAPI_PROP_IDVAL(cx, vp) (*(vp) = jsapi_id) + /* property specifier */ #define JSAPI_PS(name, fnname, tinyid, flags) \ { name , tinyid , flags , jsapi_property_##fnname##_get , jsapi_property_##fnname##_set } @@ -204,6 +213,9 @@ JS_NewCompartmentAndGlobalObject(JSContext *cx, #define JSAPI_PS_END { NULL, 0, 0, NULL, NULL } + + + static inline JSObject * JS_NewCompartmentAndGlobalObject(JSContext *cx, JSClass *jsclass, @@ -288,9 +300,9 @@ JS_NewCompartmentAndGlobalObject(JSContext *cx, /* proprty native calls */ #define JSAPI_PROP_GETTER(name, cx, obj, vp) \ - jsapi_property_##name##_get(cx, obj, jsid id, vp) + jsapi_property_##name##_get(cx, obj, jsid jsapi_id, vp) #define JSAPI_PROP_SETTER(name, cx, obj, vp) \ - jsapi_property_##name##_set(cx, obj, jsid id, JSBool strict, vp) + jsapi_property_##name##_set(cx, obj, jsid jsapi_id, JSBool strict, vp) /* native property return value */ #define JSAPI_PROP_RVAL JS_RVAL @@ -298,6 +310,9 @@ JS_NewCompartmentAndGlobalObject(JSContext *cx, /* native property getter return value */ #define JSAPI_PROP_SET_RVAL JS_SET_RVAL +/* native property ID value as a jsval */ +#define JSAPI_PROP_IDVAL(cx, vp) JS_IdToValue(cx, jsapi_id, vp) + /* property specifier */ #define JSAPI_PS(name, fnname, tinyid, flags) { \ name, \ diff --git a/javascript/jsapi/location.bnd b/javascript/jsapi/location.bnd index a381db111..32e38da93 100644 --- a/javascript/jsapi/location.bnd +++ b/javascript/jsapi/location.bnd @@ -34,6 +34,7 @@ binding location { private "struct browser_window *" bw; private "nsurl *" url; + } operation reload %{ diff --git a/javascript/jsapi/window.bnd b/javascript/jsapi/window.bnd index dbc38a796..e439980b9 100644 --- a/javascript/jsapi/window.bnd +++ b/javascript/jsapi/window.bnd @@ -30,6 +30,8 @@ binding window { internal "JSObject *" navigator; internal "JSObject *" console; internal "JSObject *" location; + + property unshared type EventHandler; } api mark %{ @@ -197,3 +199,11 @@ getter window %{ getter self %{ jsret = obj; %} + +getter EventHandler %{ + JSLOG("propname:%s %s", propname, JS_GetTypeName(cx, JS_TypeOfValue(cx, propname_jsval))); +%} + +setter EventHandler %{ + JSLOG("propname:%s %s", propname, JS_GetTypeName(cx, JS_TypeOfValue(cx, propname_jsval))); +%} -- cgit v1.2.3