Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
/* This is my testversion of UncleDouggie/beta's Twinkle. I use it to test Safari compatibility.
  *  It uses a hack to force a loadsequence for webkit users.
  *  https://bugs.webkit.org/show_bug.cgi?id=28328 */

importScript('User:UncleDouggie/beta/morebits.js');
var interval_id = setInterval( "checkLoaded()", 50 );
var interval_count = 0;

function checkLoaded() {
    if( interval_count == 100 ) {
        clearInterval( interval_id );
        throw "Failed to load morebits.js (timeout after 5 seconds)";
        return;
    } else if( typeof( morebits_js_loaded  ) != 'undefined' && morebits_js_loaded ) {
        clearInterval( interval_id );
        importScript('User:UncleDouggie/beta/twinklefluff.js');
        importScript('User:UncleDouggie/beta/twinklewarn.js');
        importScript('User:UncleDouggie/beta/twinklearv.js');
        importScript('User:UncleDouggie/beta/twinklespeedy.js');
        importScript('User:UncleDouggie/beta/twinklediff.js');
        importScript('User:UncleDouggie/beta/twinkleprotect.js');
        importScript('User:UncleDouggie/beta/twinkleprod.js');
        importScript('User:UncleDouggie/beta/twinklexfd.js');
        importScript('User:UncleDouggie/beta/twinkleimage.js');
        importScript('User:UncleDouggie/beta/twinkleunlink.js');
        importScript('User:UncleDouggie/beta/twinkledelimages.js');
        importScript('User:UncleDouggie/beta/twinkledeprod.js');
        importScript('User:UncleDouggie/beta/twinklebatchdelete.js');
        importScript('User:UncleDouggie/beta/twinklebatchprotect.js');
        importScript('User:UncleDouggie/beta/twinkleimagetraverse.js');
        importScript('User:UncleDouggie/beta/twinklebatchundelete.js');
    }
    interval_count++;
}