v8::Handle<v8::Function> ScriptFunction::adoptByGarbageCollector(PassOwnPtr<ScriptFunction> function)
{
    if (!function)
        return v8::Handle<v8::Function>();
    v8::Isolate* isolate = function->isolate();
    return createClosure(&ScriptFunction::callCallback, function.leakPtr()->releaseToV8GarbageCollector(), isolate);
}