X-Git-Url: https://git.saurik.com/cycript.git/blobdiff_plain/aaa3cd1e145ef65e21f45b71c059776593a3a010..c252950279eadefe8cd5ceb41f0eaa0d20153a56:/ObjectiveC/Library.mm diff --git a/ObjectiveC/Library.mm b/ObjectiveC/Library.mm index 094da80..db3e79c 100644 --- a/ObjectiveC/Library.mm +++ b/ObjectiveC/Library.mm @@ -1,5 +1,5 @@ /* Cycript - Optimizing JavaScript Compiler/Runtime - * Copyright (C) 2009-2010 Jay Freeman (saurik) + * Copyright (C) 2009-2012 Jay Freeman (saurik) */ /* GNU Lesser General Public License, Version 3 {{{ */ @@ -385,7 +385,7 @@ JSObjectRef CYMakeInstance(JSContextRef context, id object, bool transient) { @interface NSObject (Cycript) -- (JSValueRef) cy$JSValueInContext:(JSContextRef)context; +- (JSValueRef) cy$valueOfInContext:(JSContextRef)context; - (JSType) cy$JSType; - (NSObject *) cy$toJSON:(NSString *)key; @@ -403,7 +403,7 @@ JSObjectRef CYMakeInstance(JSContextRef context, id object, bool transient) { @protocol Cycript - (id) cy$box; -- (JSValueRef) cy$JSValueInContext:(JSContextRef)context; +- (JSValueRef) cy$valueOfInContext:(JSContextRef)context; @end NSString *CYCastNSCYON(id value) { @@ -789,7 +789,7 @@ NSObject *CYCopyNSObject(apr_pool_t *pool, JSContextRef context, JSValueRef valu return [self boolValue] ? @"@true" : @"@false"; } -- (JSValueRef) cy$JSValueInContext:(JSContextRef)context { CYObjectiveTry_(context) { +- (JSValueRef) cy$valueOfInContext:(JSContextRef)context { CYObjectiveTry_(context) { return CYCastJSValue(context, (bool) [self boolValue]); } CYObjectiveCatch } @@ -949,7 +949,7 @@ NSObject *CYCopyNSObject(apr_pool_t *pool, JSContextRef context, JSValueRef valu return [self cy$JSType] != kJSTypeBoolean ? [NSString stringWithFormat:@"@%@", self] : [self boolValue] ? @"@true" : @"@false"; } -- (JSValueRef) cy$JSValueInContext:(JSContextRef)context { CYObjectiveTry_(context) { +- (JSValueRef) cy$valueOfInContext:(JSContextRef)context { CYObjectiveTry_(context) { return [self cy$JSType] != kJSTypeBoolean ? CYCastJSValue(context, [self doubleValue]) : CYCastJSValue(context, [self boolValue]); } CYObjectiveCatch } @@ -979,7 +979,7 @@ NSObject *CYCopyNSObject(apr_pool_t *pool, JSContextRef context, JSValueRef valu return self; } -- (JSValueRef) cy$JSValueInContext:(JSContextRef)context { CYObjectiveTry_(context) { +- (JSValueRef) cy$valueOfInContext:(JSContextRef)context { CYObjectiveTry_(context) { return NULL; } CYObjectiveCatch } @@ -1100,7 +1100,7 @@ NSObject *CYCopyNSObject(apr_pool_t *pool, JSContextRef context, JSValueRef valu return false; } -- (JSValueRef) cy$JSValueInContext:(JSContextRef)context { CYObjectiveTry_(context) { +- (JSValueRef) cy$valueOfInContext:(JSContextRef)context { CYObjectiveTry_(context) { return CYCastJSValue(context, CYJSString(context, self)); } CYObjectiveCatch } @@ -1121,7 +1121,7 @@ NSObject *CYCopyNSObject(apr_pool_t *pool, JSContextRef context, JSValueRef valu return @"undefined"; } -- (JSValueRef) cy$JSValueInContext:(JSContextRef)context { CYObjectiveTry_(context) { +- (JSValueRef) cy$valueOfInContext:(JSContextRef)context { CYObjectiveTry_(context) { return CYJSUndefined(context); } CYObjectiveCatch } @@ -2412,10 +2412,10 @@ static JSValueRef Instance_callAsFunction_valueOf(JSContextRef context, JSObject Instance *internal(reinterpret_cast(JSObjectGetPrivate(_this))); id value(internal->GetValue()); - if (![value respondsToSelector:@selector(cy$JSValueInContext:)]) + if (![value respondsToSelector:@selector(cy$valueOfInContext:)]) return _this; - if (JSValueRef result = [value cy$JSValueInContext:context]) + if (JSValueRef result = [value cy$valueOfInContext:context]) return result; return _this; @@ -2529,6 +2529,9 @@ void CYObjectiveC_Initialize() { /*XXX*/ JSContextRef context(NULL); CYPoolTry { #ifdef __APPLE__ NSCFBoolean_ = objc_getClass("NSCFBoolean"); + if (NSCFBoolean_ == nil) + NSCFBoolean_ = objc_getClass("__NSCFBoolean"); + NSCFType_ = objc_getClass("NSCFType"); NSGenericDeallocHandler_ = objc_getClass("__NSGenericDeallocHandler"); NSMessageBuilder_ = objc_getClass("NSMessageBuilder");