testing/mochitest/tests/MochiKit-1.4.2/MochiKit/MochiKit.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /***
     3 MochiKit.MochiKit 1.4.2
     5 See <http://mochikit.com/> for documentation, downloads, license, etc.
     7 (c) 2005 Bob Ippolito.  All rights Reserved.
     9 ***/
    11 if (typeof(MochiKit) == 'undefined') {
    12     MochiKit = {};
    13 }
    15 if (typeof(MochiKit.MochiKit) == 'undefined') {
    16     /** @id MochiKit.MochiKit */
    17     MochiKit.MochiKit = {};
    18 }
    20 MochiKit.MochiKit.NAME = "MochiKit.MochiKit";
    21 MochiKit.MochiKit.VERSION = "1.4.2";
    22 MochiKit.MochiKit.__repr__ = function () {
    23     return "[" + this.NAME + " " + this.VERSION + "]";
    24 };
    26 /** @id MochiKit.MochiKit.toString */
    27 MochiKit.MochiKit.toString = function () {
    28     return this.__repr__();
    29 };
    31 /** @id MochiKit.MochiKit.SUBMODULES */
    32 MochiKit.MochiKit.SUBMODULES = [
    33     "Base",
    34     "Iter",
    35     "Logging",
    36     "DateTime",
    37     "Format",
    38     "Async",
    39     "DOM",
    40     "Selector",
    41     "Style",
    42     "LoggingPane",
    43     "Color",
    44     "Signal",
    45     "Position",
    46     "Visual",
    47     "DragAndDrop",
    48     "Sortable"
    49 ];
    51 if (typeof(JSAN) != 'undefined' || typeof(dojo) != 'undefined') {
    52     if (typeof(dojo) != 'undefined') {
    53         dojo.provide('MochiKit.MochiKit');
    54         (function (lst) {
    55             for (var i = 0; i < lst.length; i++) {
    56                 dojo.require("MochiKit." + lst[i]);
    57             }
    58         })(MochiKit.MochiKit.SUBMODULES);
    59     }
    60     if (typeof(JSAN) != 'undefined') {
    61         (function (lst) {
    62             for (var i = 0; i < lst.length; i++) {
    63                 JSAN.use("MochiKit." + lst[i], []);
    64             }
    65         })(MochiKit.MochiKit.SUBMODULES);
    66     }
    67     (function () {
    68         var extend = MochiKit.Base.extend;
    69         var self = MochiKit.MochiKit;
    70         var modules = self.SUBMODULES;
    71         var EXPORT = [];
    72         var EXPORT_OK = [];
    73         var EXPORT_TAGS = {};
    74         var i, k, m, all;
    75         for (i = 0; i < modules.length; i++) {
    76             m = MochiKit[modules[i]];
    77             extend(EXPORT, m.EXPORT);
    78             extend(EXPORT_OK, m.EXPORT_OK);
    79             for (k in m.EXPORT_TAGS) {
    80                 EXPORT_TAGS[k] = extend(EXPORT_TAGS[k], m.EXPORT_TAGS[k]);
    81             }
    82             all = m.EXPORT_TAGS[":all"];
    83             if (!all) {
    84                 all = extend(null, m.EXPORT, m.EXPORT_OK);
    85             }
    86             var j;
    87             for (j = 0; j < all.length; j++) {
    88                 k = all[j];
    89                 self[k] = m[k];
    90             }
    91         }
    92         self.EXPORT = EXPORT;
    93         self.EXPORT_OK = EXPORT_OK;
    94         self.EXPORT_TAGS = EXPORT_TAGS;
    95     }());
    97 } else {
    98     if (typeof(MochiKit.__compat__) == 'undefined') {
    99         MochiKit.__compat__ = true;
   100     }
   101     (function () {
   102         if (typeof(document) == "undefined") {
   103             return;
   104         }
   105         var scripts = document.getElementsByTagName("script");
   106         var kXHTMLNSURI = "http://www.w3.org/1999/xhtml";
   107         var kSVGNSURI = "http://www.w3.org/2000/svg";
   108         var kXLINKNSURI = "http://www.w3.org/1999/xlink";
   109         var kXULNSURI = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
   110         var base = null;
   111         var baseElem = null;
   112         var allScripts = {};
   113         var i;
   114         var src;
   115         for (i = 0; i < scripts.length; i++) {
   116             src = null;
   117             switch (scripts[i].namespaceURI) {
   118                 case kSVGNSURI:
   119                     src = scripts[i].getAttributeNS(kXLINKNSURI, "href");
   120                     break;
   121                 /*
   122                 case null: // HTML
   123                 case '': // HTML
   124                 case kXHTMLNSURI:
   125                 case kXULNSURI:
   126                 */
   127                 default:
   128                     src = scripts[i].getAttribute("src");
   129                     break;
   130             }
   131             if (!src) {
   132                 continue;
   133             }
   134             allScripts[src] = true;
   135             if (src.match(/MochiKit.js(\?.*)?$/)) {
   136                 base = src.substring(0, src.lastIndexOf('MochiKit.js'));
   137                 baseElem = scripts[i];
   138             }
   139         }
   140         if (base === null) {
   141             return;
   142         }
   143         var modules = MochiKit.MochiKit.SUBMODULES;
   144         for (var i = 0; i < modules.length; i++) {
   145             if (MochiKit[modules[i]]) {
   146                 continue;
   147             }
   148             var uri = base + modules[i] + '.js';
   149             if (uri in allScripts) {
   150                 continue;
   151             }
   152             if (baseElem.namespaceURI == kSVGNSURI ||
   153                 baseElem.namespaceURI == kXULNSURI) {
   154                 // SVG, XUL
   155                 /*
   156                     SVG does not support document.write, so if Safari wants to
   157                     support SVG tests it should fix its deferred loading bug
   158                     (see following below).
   160                 */
   161                 var s = document.createElementNS(baseElem.namespaceURI, 'script');
   162                 s.setAttribute("id", "MochiKit_" + base + modules[i]);
   163                 if (baseElem.namespaceURI == kSVGNSURI) {
   164                     s.setAttributeNS(kXLINKNSURI, 'href', uri);
   165                 } else {
   166                     s.setAttribute('src', uri);
   167                 }
   168                 s.setAttribute("type", "application/x-javascript");
   169                 baseElem.parentNode.appendChild(s);
   170             } else {
   171                 // HTML, XHTML
   172                 /*
   173                     DOM can not be used here because Safari does
   174                     deferred loading of scripts unless they are
   175                     in the document or inserted with document.write
   177                     This is not XHTML compliant.  If you want XHTML
   178                     compliance then you must use the packed version of MochiKit
   179                     or include each script individually (basically unroll
   180                     these document.write calls into your XHTML source)
   182                 */
   183                 document.write('<' + baseElem.nodeName + ' src="' + uri + 
   184                     '" type="text/javascript"></script>');
   185             }
   186         };
   187     })();
   188 }

mercurial