+#endif
+
+ definition = kJSClassDefinitionEmpty;
+ definition.className = "ObjectiveC::Protocols";
+ definition.getProperty = &ObjectiveC_Protocols_getProperty;
+ definition.getPropertyNames = &ObjectiveC_Protocols_getPropertyNames;
+ ObjectiveC_Protocols_ = JSClassCreate(&definition);
+
+#if defined(__APPLE__) && defined(__arm__)
+ MSHookFunction(&objc_registerClassPair, MSHake(objc_registerClassPair));
+#endif
+
+#ifdef __APPLE__
+ class_addMethod(NSCFType_, @selector(cy$toJSON:), reinterpret_cast<IMP>(&NSCFType$cy$toJSON), "@12@0:4@8");
+#endif
+} CYPoolCatch() }
+
+void CYObjectiveC_SetupContext(JSContextRef context) { CYPoolTry {
+ JSObjectRef global(CYGetGlobalObject(context));
+ JSObjectRef cy(CYCastJSObject(context, CYGetProperty(context, global, cy_s)));
+
+ JSObjectRef ObjectiveC(JSObjectMake(context, NULL, NULL));
+ CYSetProperty(context, global, CYJSString("ObjectiveC"), ObjectiveC);