1 /** 2 * Hilo 3 * Copyright 2015 alibaba.com 4 * Licensed under the MIT License 5 */ 6 7 var arrayProto = Array.prototype, 8 slice = arrayProto.slice; 9 10 //polyfiil for Array.prototype.indexOf 11 if (!arrayProto.indexOf) { 12 arrayProto.indexOf = function(elem, fromIndex){ 13 fromIndex = fromIndex || 0; 14 var len = this.length, i; 15 if(len == 0 || fromIndex >= len) return -1; 16 if(fromIndex < 0) fromIndex = len + fromIndex; 17 for(i = fromIndex; i < len; i++){ 18 if(this[i] === elem) return i; 19 } 20 return -1; 21 }; 22 } 23 24 var fnProto = Function.prototype; 25 26 //polyfill for Function.prototype.bind 27 if (!fnProto.bind) { 28 fnProto.bind = function(thisArg){ 29 var target = this, 30 boundArgs = slice.call(arguments, 1), 31 F = function(){}; 32 33 function bound(){ 34 var args = boundArgs.concat(slice.call(arguments)); 35 return target.apply(this instanceof bound ? this : thisArg, args); 36 } 37 38 F.prototype = target.prototype; 39 bound.prototype = new F(); 40 41 return bound; 42 }; 43 }