Skip to content

Commit b756a9a

Browse files
Support to invoke super message.
1 parent 324d48b commit b756a9a

3 files changed

Lines changed: 9 additions & 46 deletions

File tree

Classes/JSBScriptingSupport.m

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,15 @@ static void setupForwardingImplementations(Class targetClass, Class cls, JSValue
218218

219219
static void forwardInvocation(id self, SEL _cmd, NSInvocation *invocation)
220220
{
221+
if ([[self superclass] instancesRespondToSelector:invocation.selector]) {
222+
SEL invokeSuper = NSSelectorFromString(@"invokeSuper");
223+
NSMethodSignature *signature = [invocation methodSignatureForSelector:invokeSuper];
224+
NSInvocation *messageSuper = [NSInvocation invocationWithMethodSignature:signature];
225+
messageSuper.selector = invokeSuper;
226+
messageSuper.target = invocation;
227+
[messageSuper invoke];
228+
}
229+
221230
JSContext *context = globalContext;
222231
context[@"self"] = self;
223232

Classes/JSBSuperClassProxy.h

Lines changed: 0 additions & 17 deletions
This file was deleted.

Classes/JSBSuperClassProxy.m

Lines changed: 0 additions & 29 deletions
This file was deleted.

0 commit comments

Comments
 (0)