testing/mochitest/MochiKit/MochiKit.js

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/testing/mochitest/MochiKit/MochiKit.js	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,152 @@
     1.4 +/***
     1.5 +
     1.6 +MochiKit.MochiKit 1.4
     1.7 +
     1.8 +See <http://mochikit.com/> for documentation, downloads, license, etc.
     1.9 +
    1.10 +(c) 2005 Bob Ippolito.  All rights Reserved.
    1.11 +
    1.12 +***/
    1.13 +
    1.14 +if (typeof(MochiKit) == 'undefined') {
    1.15 +    MochiKit = {};
    1.16 +}
    1.17 +
    1.18 +if (typeof(MochiKit.MochiKit) == 'undefined') {
    1.19 +    /** @id MochiKit.MochiKit */
    1.20 +    MochiKit.MochiKit = {};
    1.21 +}
    1.22 +
    1.23 +MochiKit.MochiKit.NAME = "MochiKit.MochiKit";
    1.24 +MochiKit.MochiKit.VERSION = "1.4";
    1.25 +MochiKit.MochiKit.__repr__ = function () {
    1.26 +    return "[" + this.NAME + " " + this.VERSION + "]";
    1.27 +};
    1.28 +
    1.29 +/** @id MochiKit.MochiKit.toString */
    1.30 +MochiKit.MochiKit.toString = function () {
    1.31 +    return this.__repr__();
    1.32 +};
    1.33 +
    1.34 +/** @id MochiKit.MochiKit.SUBMODULES */
    1.35 +MochiKit.MochiKit.SUBMODULES = [
    1.36 +    "Base",
    1.37 +    "Iter",
    1.38 +    "Logging",
    1.39 +    "DateTime",
    1.40 +    "Format",
    1.41 +    "Async",
    1.42 +    "DOM",
    1.43 +    "Style",
    1.44 +    "LoggingPane",
    1.45 +    "Color",
    1.46 +    "Signal",
    1.47 +    "Visual"
    1.48 +];
    1.49 +
    1.50 +if (typeof(JSAN) != 'undefined' || typeof(dojo) != 'undefined') {
    1.51 +    if (typeof(dojo) != 'undefined') {
    1.52 +        dojo.provide('MochiKit.MochiKit');
    1.53 +        dojo.require("MochiKit.*");
    1.54 +    }
    1.55 +    if (typeof(JSAN) != 'undefined') {
    1.56 +        (function (lst) {
    1.57 +            for (var i = 0; i < lst.length; i++) {
    1.58 +                JSAN.use("MochiKit." + lst[i], []);
    1.59 +            }
    1.60 +        })(MochiKit.MochiKit.SUBMODULES);
    1.61 +    }
    1.62 +    (function () {
    1.63 +        var extend = MochiKit.Base.extend;
    1.64 +        var self = MochiKit.MochiKit;
    1.65 +        var modules = self.SUBMODULES;
    1.66 +        var EXPORT = [];
    1.67 +        var EXPORT_OK = [];
    1.68 +        var EXPORT_TAGS = {};
    1.69 +        var i, k, m, all;
    1.70 +        for (i = 0; i < modules.length; i++) {
    1.71 +            m = MochiKit[modules[i]];
    1.72 +            extend(EXPORT, m.EXPORT);
    1.73 +            extend(EXPORT_OK, m.EXPORT_OK);
    1.74 +            for (k in m.EXPORT_TAGS) {
    1.75 +                EXPORT_TAGS[k] = extend(EXPORT_TAGS[k], m.EXPORT_TAGS[k]);
    1.76 +            }
    1.77 +            all = m.EXPORT_TAGS[":all"];
    1.78 +            if (!all) {
    1.79 +                all = extend(null, m.EXPORT, m.EXPORT_OK);
    1.80 +            }
    1.81 +            var j;
    1.82 +            for (j = 0; j < all.length; j++) {
    1.83 +                k = all[j];
    1.84 +                self[k] = m[k];
    1.85 +            }
    1.86 +        }
    1.87 +        self.EXPORT = EXPORT;
    1.88 +        self.EXPORT_OK = EXPORT_OK;
    1.89 +        self.EXPORT_TAGS = EXPORT_TAGS;
    1.90 +    }());
    1.91 +    
    1.92 +} else {
    1.93 +    if (typeof(MochiKit.__compat__) == 'undefined') {
    1.94 +        MochiKit.__compat__ = true;
    1.95 +    }
    1.96 +    (function () {
    1.97 +        if (typeof(document) == "undefined") {
    1.98 +            return;
    1.99 +        }
   1.100 +        var scripts = document.getElementsByTagName("script");
   1.101 +        var kXULNSURI = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
   1.102 +        var base = null;
   1.103 +        var baseElem = null;
   1.104 +        var allScripts = {};
   1.105 +        var i;
   1.106 +        for (i = 0; i < scripts.length; i++) {
   1.107 +            var src = scripts[i].getAttribute("src");
   1.108 +            if (!src) {
   1.109 +                continue;
   1.110 +            }
   1.111 +            allScripts[src] = true;
   1.112 +            if (src.match(/MochiKit.js$/)) {
   1.113 +                base = src.substring(0, src.lastIndexOf('MochiKit.js'));
   1.114 +                baseElem = scripts[i];
   1.115 +            }
   1.116 +        }
   1.117 +        if (base === null) {
   1.118 +            return;
   1.119 +        }
   1.120 +        var modules = MochiKit.MochiKit.SUBMODULES;
   1.121 +        for (var i = 0; i < modules.length; i++) {
   1.122 +            if (MochiKit[modules[i]]) {
   1.123 +                continue;
   1.124 +            }
   1.125 +            var uri = base + modules[i] + '.js';
   1.126 +            if (uri in allScripts) {
   1.127 +                continue;
   1.128 +            }
   1.129 +            if (document.documentElement &&
   1.130 +                document.documentElement.namespaceURI == kXULNSURI) {
   1.131 +                // XUL
   1.132 +                var s = document.createElementNS(kXULNSURI, 'script');
   1.133 +                s.setAttribute("id", "MochiKit_" + base + modules[i]);
   1.134 +                s.setAttribute("src", uri);
   1.135 +                s.setAttribute("type", "application/x-javascript");
   1.136 +                baseElem.parentNode.appendChild(s);
   1.137 +            } else {
   1.138 +                // HTML
   1.139 +                /*
   1.140 +                    DOM can not be used here because Safari does
   1.141 +                    deferred loading of scripts unless they are
   1.142 +                    in the document or inserted with document.write
   1.143 +
   1.144 +                    This is not XHTML compliant.  If you want XHTML
   1.145 +                    compliance then you must use the packed version of MochiKit
   1.146 +                    or include each script individually (basically unroll
   1.147 +                    these document.write calls into your XHTML source)
   1.148 +
   1.149 +                */
   1.150 +                document.write('<script src="' + uri +
   1.151 +                    '" type="text/javascript"></script>');
   1.152 +            }
   1.153 +        };
   1.154 +    })();
   1.155 +}

mercurial