OSDN Git Service

Version 0.6.143, fix X.UI.ScrollBox for iOS3.
[pettanr/clientJs.git] / 0.6.x / js / 01_core / 00_builtin.js
index d98e43a..b5cb1cb 100644 (file)
  */\r
 \r
 Function.prototype.apply || (Function.prototype.apply = function (x, y) {\r
-       var a, i, r, j;\r
+       var apply = '__apply',\r
+               a, i, r, j;\r
+\r
        x = x || window;\r
        y = y || [];\r
        \r
        // apply 内で apply を呼んだ場合に備える\r
        if( x === window ){\r
-               x.__apply = void 0;\r
+               x[ apply ] = void 0;\r
        } else {\r
-               if( x.constructor && x.constructor.prototype.__apply ){\r
-                       delete x.constructor.prototype.__apply;\r
+               if( x.constructor && x.constructor.prototype[ apply ] ){\r
+                       delete x.constructor.prototype[ apply ];\r
                } else\r
-               if( x.__apply ) delete x.__apply;\r
+               if( x[ apply ] ) delete x[ apply ];\r
        };\r
        \r
-       x.__apply = this;\r
-       if (!x.__apply) x.constructor.prototype.__apply = this;\r
+       x[ apply ] = this;\r
+       if (!x[ apply ]) x.constructor.prototype[ apply ] = this;\r
        j = y.length;\r
        switch (j) {\r
-               case 0: r = x.__apply(); break;\r
-               case 1: r = x.__apply(y[0]); break;\r
-               case 2: r = x.__apply(y[0], y[1]); break;\r
-               case 3: r = x.__apply(y[0], y[1], y[2]); break;\r
-               case 4: r = x.__apply(y[0], y[1], y[2], y[3]); break;\r
-               case 5: r = x.__apply(y[0], y[1], y[2], y[3], y[4]); break;\r
-               case 6: r = x.__apply(y[0], y[1], y[2], y[3], y[4], y[5]); break;\r
-               case 7: r = x.__apply(y[0], y[1], y[2], y[3], y[4], y[5], y[6]); break;\r
-               case 8: r = x.__apply(y[0], y[1], y[2], y[3], y[4], y[5], y[6], y[7]); break;\r
-               case 9: r = x.__apply(y[0], y[1], y[2], y[3], y[4], y[5], y[6], y[7], y[8]); break;\r
+               case 0: r = x[ apply ](); break;\r
+               case 1: r = x[ apply ](y[0]); break;\r
+               case 2: r = x[ apply ](y[0], y[1]); break;\r
+               case 3: r = x[ apply ](y[0], y[1], y[2]); break;\r
+               case 4: r = x[ apply ](y[0], y[1], y[2], y[3]); break;\r
+               case 5: r = x[ apply ](y[0], y[1], y[2], y[3], y[4]); break;\r
+               case 6: r = x[ apply ](y[0], y[1], y[2], y[3], y[4], y[5]); break;\r
+               case 7: r = x[ apply ](y[0], y[1], y[2], y[3], y[4], y[5], y[6]); break;\r
+               case 8: r = x[ apply ](y[0], y[1], y[2], y[3], y[4], y[5], y[6], y[7]); break;\r
+               case 9: r = x[ apply ](y[0], y[1], y[2], y[3], y[4], y[5], y[6], y[7], y[8]); break;\r
                default:\r
                        a = [];\r
                        for (i = 0; i < j; ++i)\r
@@ -49,13 +51,13 @@ Function.prototype.apply || (Function.prototype.apply = function (x, y) {
        };\r
        // ie5\r
        if( x === window ){\r
-               x.__apply = void 0;\r
+               x[ apply ] = void 0;\r
        } else {\r
                //alert( typeof x );\r
-               if( x.constructor && x.constructor.prototype.__apply ){\r
-                       delete x.constructor.prototype.__apply;\r
+               if( x.constructor && x.constructor.prototype[ apply ] ){\r
+                       delete x.constructor.prototype[ apply ];\r
                } else\r
-               if( x.__apply ) delete x.__apply;\r
+               if( x[ apply ] ) delete x[ apply ];\r
        };\r
        return r;\r
 });\r
@@ -133,11 +135,45 @@ Array.prototype.indexOf || (Array.prototype.indexOf = function( searchElement, f
 \r
 \r
 /*\r
+ * JavaScript split Bugs: Fixed!\r
+ * http://blog.stevenlevithan.com/archives/cross-browser-split\r
+ */\r
+\r
+/*\r
  * Window\r
- * by http://nurucom-archives.hp.infoseek.co.jp/digital/trans-uri.html\r
+ * by https://web.archive.org/web/20100413085309/http://nurucom-archives.hp.infoseek.co.jp/digital/trans-uri.html\r
  */\r
 \r
-/* 正規表現が使われているため、まだ投入しない itozyun\r
+/*\r
+ * //\r
+// TransURI (UTF-8): transURI.js (Ver.041211)\r
+//\r
+// Copyright (C) http://nurucom-archives.hp.infoseek.co.jp/digital/\r
+//\r
+\r
+EncodeURI=function(str){\r
+       return str.replace(/[^!#$&-;=?-Z_a-z~]/g,function(s){\r
+               var c=s.charCodeAt(0);\r
+               return (c<16?"%0"+c.toString(16):c<128?"%"+c.toString(16):c<2048?"%"+(c>>6|192).toString(16)+"%"+(c&63|128).toString(16):"%"+(c>>12|224).toString(16)+"%"+(c>>6&63|128).toString(16)+"%"+(c&63|128).toString(16)).toUpperCase()\r
+       })\r
+};\r
+\r
+EncodeURIComponent=function(str){\r
+       return str.replace(/[^!'-*.0-9A-Z_a-z~-]/g,function(s){\r
+               var c=s.charCodeAt(0);\r
+               return (c<16?'%0'+c.toString(16):c<128?'%'+c.toString(16):c<2048?'%'+(c>>6|192).toString(16)+'%'+(c&63|128).toString(16):'%'+(c>>12|224).toString(16)+'%'+(c>>6&63|128).toString(16)+'%'+(c&63|128).toString(16)).toUpperCase()\r
+       })\r
+};\r
+\r
+DecodeURI=function(str){\r
+       return str.replace(/%(E(0%[AB]|[1-CEF]%[89AB]|D%[89])[0-9A-F]|C[2-9A-F]|D[0-9A-F])%[89AB][0-9A-F]|%[0-7][0-9A-F]/ig,function(s){\r
+               var c=parseInt(s.substring(1),16);\r
+               return String.fromCharCode(c<128?c:c<224?(c&31)<<6|parseInt(s.substring(4),16)&63:((c&15)<<6|parseInt(s.substring(4),16)&63)<<6|parseInt(s.substring(7),16)&63)\r
+       })\r
+};\r
+ */\r
+\r
+/* 正規表現が使われているため、まだ投入しない itozyun*/\r
 window.encodeURI || (window.encodeURI = function (x) {\r
        return ("" + x).replace(/[^!#$&-;=?-Z_a-z~]/g, function (s) {\r
                var c = s.charCodeAt(0), p = "%";\r
@@ -173,7 +209,7 @@ window.decodeURI || (window.decodeURI = function (x) {
                );\r
        });\r
 });\r
-*/\r
+\r
 \r
 \r
 //window.decodeURIComponent || (window.decodeURIComponent = window.decodeURI);\r