<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div><blockquote type="cite" class=""><div class="">On Sep 29, 2015, at 8:40 PM, Yadong Liu &lt;<a href="mailto:yadong@fingerprintplay.com" class="">yadong@fingerprintplay.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div class="">So
 my question is: what I need to do to make sure the my Objective-C 
object's dealloc() is called immediately as soon as my JavaScript code 
removes all references to the object?</div></div></div></blockquote><br class=""></div><div>JavaScriptCore manages storage with garbage collection. With garbage collection, there is no guarantee that an object will be deallocated as soon as code removes all references to an object; that won’t happen until garbage collection later determines it can deallocate the object. The object will be deallocated some time later, but not promptly.</div><div><br class=""></div><div>If you need to promptly deallocate a particular Objective-C object at a well defined time, then you will need to change your design so that the deallocation of the object in question is driven by an explicit function call, not by the timing of garbage collection. Typically that means that work that was done in the “dealloc” method is instead done in some other method, one called explicitly from JavaScript. The object you pass to -[JSValue valueWithObject:inContext:] should typically be a small wrapper object, not a large object that would drive a need to deallocate it promptly.</div><div><br class=""></div><div>There may be some other JavaScriptCore experts on the list that can elaborate further.</div><div><br class=""></div><div>By the way, this mailing list is normally for the development *of* WebKit, not for tips on how to use it properly. There are some other lists for that, such as&nbsp;<a href="http://lists.webkit.org/mailman/listinfo/webkit-help" class="">http://lists.webkit.org/mailman/listinfo/webkit-help</a>&nbsp;and&nbsp;<a href="http://www.lists.apple.com/mailman/listinfo/webkitsdk-dev" class="">http://www.lists.apple.com/mailman/listinfo/webkitsdk-dev</a>&nbsp;— I decided to answer your question here even though it’s off topic. Please see&nbsp;<a href="http://www.webkit.org/contact.html" class="">http://www.webkit.org/contact.html</a>&nbsp;for details.</div><div><br class=""></div><div>— Darin</div></body></html>