static Type_privateData *Object;
static Type_privateData *Selector;
- static JSClassRef Class;
+ static JSClassRef Class_;
ffi_type *ffi_;
sig::Type *type_;
}
};
+JSClassRef Type_privateData::Class_;
Type_privateData *Type_privateData::Object;
Type_privateData *Type_privateData::Selector;
}
#endif
+#ifndef __APPLE__
+@interface CYWebUndefined : NSObject {
+}
+
++ (CYWebUndefined *) undefined;
+
+@end
+
+@implementation CYWebUndefined
+
++ (CYWebUndefined *) undefined {
+ static CYWebUndefined *instance_([[CYWebUndefined alloc] init]);
+ return instance_;
+}
+
+@end
+
+#define WebUndefined CYWebUndefined
+#endif
+
/* Bridge: NSArray {{{ */
@implementation NSArray (Cycript)
@end
/* }}} */
+/* Bridge: CYJSObject {{{ */
@interface CYJSObject : NSMutableDictionary {
JSObjectRef object_;
JSContextRef context_;
- (void) removeObjectForKey:(id)key;
@end
-
+/* }}} */
+/* Bridge: CYJSArray {{{ */
@interface CYJSArray : NSMutableArray {
JSObjectRef object_;
JSContextRef context_;
- (void) replaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject;
@end
+/* }}} */
#define CYTry \
@try
static JSObjectRef CYMakeType(JSContextRef context, const char *type) {
Type_privateData *internal(new Type_privateData(NULL, type));
- return JSObjectMake(context, Type_privateData::Class, internal);
+ return JSObjectMake(context, Type_privateData::Class_, internal);
}
static JSObjectRef CYMakeType(JSContextRef context, sig::Type *type) {
Type_privateData *internal(new Type_privateData(type));
- return JSObjectMake(context, Type_privateData::Class, internal);
+ return JSObjectMake(context, Type_privateData::Class_, internal);
}
static JSValueRef Runtime_getProperty(JSContextRef context, JSObjectRef object, JSStringRef property, JSValueRef *exception) {
definition.callAsFunction = &Type_callAsFunction;
definition.callAsConstructor = &Type_callAsConstructor;
definition.finalize = &Finalize;
- // XXX: dude: just rename the damned variable
- (Type_privateData::Class) = JSClassCreate(&definition);
+ Type_privateData::Class_ = JSClassCreate(&definition);
definition = kJSClassDefinitionEmpty;
definition.className = "Runtime";
CYSetProperty(context, global, CYJSString("Instance"), Instance);
CYSetProperty(context, global, CYJSString("Pointer"), JSObjectMakeConstructor(context, Pointer_, &Pointer_new));
CYSetProperty(context, global, CYJSString("Selector"), Selector);
- CYSetProperty(context, global, CYJSString("Type"), JSObjectMakeConstructor(context, Type_privateData::Class, &Type_new));
+ CYSetProperty(context, global, CYJSString("Type"), JSObjectMakeConstructor(context, Type_privateData::Class_, &Type_new));
MSHookFunction(&objc_registerClassPair, MSHake(objc_registerClassPair));