return CYCastJSValue(context, name);
} CYCatch(NULL) }
-static JSValueRef Cycript_gc_callAsFunction(JSContextRef context, JSObjectRef object, JSObjectRef _this, size_t count, const JSValueRef arguments[], JSValueRef *exception) { CYTry {
+
+void CYGarbageCollect(JSContextRef context) {
JSGarbageCollect(context);
+}
+
+static JSValueRef Cycript_gc_callAsFunction(JSContextRef context, JSObjectRef object, JSObjectRef _this, size_t count, const JSValueRef arguments[], JSValueRef *exception) { CYTry {
+ CYGarbageCollect(context);
return CYJSUndefined(context);
} CYCatch(NULL) }
CYRunSetups(context);
}
+static JSGlobalContextRef context_;
+
JSGlobalContextRef CYGetJSContext() {
CYInitializeDynamic();
- static JSGlobalContextRef context_;
-
if (context_ == NULL) {
context_ = JSGlobalContextCreate(Global_);
CYSetupContext(context_);
return context_;
}
+
+void CYDestroyContext() {
+ if (context_ == NULL)
+ return;
+ JSGlobalContextRelease(context_);
+ context_ = NULL;
+}