OSDN Git Service

Version 0.6.134, add comments for closure compiler.
[pettanr/clientJs.git] / 0.6.x / js / 01_core / 00_builtin.js
index ba646f8..8a8f073 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