266 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			266 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| // Class: js.Boot
 | |
| 
 | |
| var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this
 | |
| 
 | |
| $global.Object.defineProperty(exports, "__esModule", {value: true});
 | |
| 
 | |
| var __map_reserved = {};
 | |
| 
 | |
| // Imports
 | |
| 
 | |
| var $hxClasses = require("./../hxClasses_stub").default;
 | |
| var $import = require("./../import_stub").default;
 | |
| function js__$Boot_HaxeError() {return require("./../js/_Boot/HaxeError");}
 | |
| function Std() {return require("./../Std");}
 | |
| 
 | |
| // Constructor
 | |
| 
 | |
| var Boot = function(){}
 | |
| 
 | |
| // Meta
 | |
| 
 | |
| Boot.__name__ = ["js","Boot"];
 | |
| Boot.prototype = {
 | |
| 	
 | |
| };
 | |
| Boot.prototype.__class__ = $hxClasses["js.Boot"] = Boot;
 | |
| 
 | |
| // Init
 | |
| 
 | |
| 
 | |
| 
 | |
| // Statics
 | |
| 
 | |
| Boot.__unhtml = function(s) {
 | |
| 	return s.split("&").join("&").split("<").join("<").split(">").join(">");
 | |
| }
 | |
| Boot.__trace = function(v,i) {
 | |
| 	var msg = i != null ? i.fileName + ":" + i.lineNumber + ": " : "";
 | |
| 	msg += Boot.__string_rec(v,"");
 | |
| 	if(i != null && i.customParams != null) {
 | |
| 		var _g = 0;
 | |
| 		var _g1 = i.customParams;
 | |
| 		while(_g < _g1.length) {
 | |
| 			var v1 = _g1[_g];
 | |
| 			++_g;
 | |
| 			msg += "," + Boot.__string_rec(v1,"");
 | |
| 		}
 | |
| 	}
 | |
| 	var d;
 | |
| 	var tmp;
 | |
| 	if(typeof(document) != "undefined") {
 | |
| 		d = document.getElementById("haxe:trace");
 | |
| 		tmp = d != null;
 | |
| 	} else {
 | |
| 		tmp = false;
 | |
| 	}
 | |
| 	if(tmp) {
 | |
| 		d.innerHTML += Boot.__unhtml(msg) + "<br/>";
 | |
| 	} else if(typeof console != "undefined" && console.log != null) {
 | |
| 		console.log(msg);
 | |
| 	}
 | |
| }
 | |
| Boot.isClass = function(o) {
 | |
| 	return o.__name__;
 | |
| }
 | |
| Boot.isEnum = function(e) {
 | |
| 	return e.__ename__;
 | |
| }
 | |
| Boot.getClass = function(o) {
 | |
| 	if((o instanceof Array) && o.__enum__ == null) {
 | |
| 		return Array
 | |
| 	} else {
 | |
| 		var cl = o.__class__;
 | |
| 		if(cl != null) {
 | |
| 			return cl;
 | |
| 		}
 | |
| 		var name = Boot.__nativeClassName(o);
 | |
| 		if(name != null) {
 | |
| 			return Boot.__resolveNativeClass(name);
 | |
| 		}
 | |
| 		return null;
 | |
| 	}
 | |
| }
 | |
| Boot.__string_rec = function(o,s) {
 | |
| 	if(o == null) {
 | |
| 		return "null";
 | |
| 	}
 | |
| 	if(s.length >= 5) {
 | |
| 		return "<...>";
 | |
| 	}
 | |
| 	var t = typeof(o);
 | |
| 	if(t == "function" && (Boot.isClass(o) || Boot.isEnum(o))) {
 | |
| 		t = "object";
 | |
| 	}
 | |
| 	switch(t) {
 | |
| 	case "function":
 | |
| 		return "<function>";
 | |
| 	case "object":
 | |
| 		if(o instanceof Array) {
 | |
| 			if(o.__enum__) {
 | |
| 				if(o.length == 2) {
 | |
| 					return o[0];
 | |
| 				}
 | |
| 				var str = o[0] + "(";
 | |
| 				s += "\t";
 | |
| 				var _g1 = 2;
 | |
| 				var _g = o.length;
 | |
| 				while(_g1 < _g) {
 | |
| 					var i = _g1++;
 | |
| 					if(i != 2) {
 | |
| 						str += "," + Boot.__string_rec(o[i],s);
 | |
| 					} else {
 | |
| 						str += Boot.__string_rec(o[i],s);
 | |
| 					}
 | |
| 				}
 | |
| 				return str + ")";
 | |
| 			}
 | |
| 			var l = o.length;
 | |
| 			var i1;
 | |
| 			var str1 = "[";
 | |
| 			s += "\t";
 | |
| 			var _g11 = 0;
 | |
| 			var _g2 = l;
 | |
| 			while(_g11 < _g2) {
 | |
| 				var i2 = _g11++;
 | |
| 				str1 += (i2 > 0 ? "," : "") + Boot.__string_rec(o[i2],s);
 | |
| 			}
 | |
| 			str1 += "]";
 | |
| 			return str1;
 | |
| 		}
 | |
| 		var tostr;
 | |
| 		try {
 | |
| 			tostr = o.toString;
 | |
| 		} catch( e ) {
 | |
| 			return "???";
 | |
| 		}
 | |
| 		if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
 | |
| 			var s2 = o.toString();
 | |
| 			if(s2 != "[object Object]") {
 | |
| 				return s2;
 | |
| 			}
 | |
| 		}
 | |
| 		var k = null;
 | |
| 		var str2 = "{\n";
 | |
| 		s += "\t";
 | |
| 		var hasp = o.hasOwnProperty != null;
 | |
| 		for( var k in o ) {
 | |
| 		if(hasp && !o.hasOwnProperty(k)) {
 | |
| 			continue;
 | |
| 		}
 | |
| 		if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
 | |
| 			continue;
 | |
| 		}
 | |
| 		if(str2.length != 2) {
 | |
| 			str2 += ", \n";
 | |
| 		}
 | |
| 		str2 += s + k + " : " + Boot.__string_rec(o[k],s);
 | |
| 		}
 | |
| 		s = s.substring(1);
 | |
| 		str2 += "\n" + s + "}";
 | |
| 		return str2;
 | |
| 	case "string":
 | |
| 		return o;
 | |
| 	default:
 | |
| 		return String(o);
 | |
| 	}
 | |
| }
 | |
| Boot.__interfLoop = function(cc,cl) {
 | |
| 	if(cc == null) {
 | |
| 		return false;
 | |
| 	}
 | |
| 	if(cc == cl) {
 | |
| 		return true;
 | |
| 	}
 | |
| 	var intf = cc.__interfaces__;
 | |
| 	if(intf != null) {
 | |
| 		var _g1 = 0;
 | |
| 		var _g = intf.length;
 | |
| 		while(_g1 < _g) {
 | |
| 			var i = _g1++;
 | |
| 			var i1 = intf[i];
 | |
| 			if(i1 == cl || Boot.__interfLoop(i1,cl)) {
 | |
| 				return true;
 | |
| 			}
 | |
| 		}
 | |
| 	}
 | |
| 	return Boot.__interfLoop(cc.__super__,cl);
 | |
| }
 | |
| Boot.__instanceof = function(o,cl) {
 | |
| 	if(cl == null) {
 | |
| 		return false;
 | |
| 	}
 | |
| 	switch(cl) {
 | |
| 	case Array:
 | |
| 		if((o instanceof Array)) {
 | |
| 			return o.__enum__ == null;
 | |
| 		} else {
 | |
| 			return false;
 | |
| 		}
 | |
| 		break;
 | |
| 	case $hxClasses["Bool"]:
 | |
| 		return typeof(o) == "boolean";
 | |
| 	case $hxClasses["Dynamic"]:
 | |
| 		return true;
 | |
| 	case $hxClasses["Float"]:
 | |
| 		return typeof(o) == "number";
 | |
| 	case $hxClasses["Int"]:
 | |
| 		if(typeof(o) == "number") {
 | |
| 			return (o|0) === o;
 | |
| 		} else {
 | |
| 			return false;
 | |
| 		}
 | |
| 		break;
 | |
| 	case String:
 | |
| 		return typeof(o) == "string";
 | |
| 	default:
 | |
| 		if(o != null) {
 | |
| 			if(typeof(cl) == "function") {
 | |
| 				if(o instanceof cl) {
 | |
| 					return true;
 | |
| 				}
 | |
| 				if(Boot.__interfLoop(Boot.getClass(o),cl)) {
 | |
| 					return true;
 | |
| 				}
 | |
| 			} else if(typeof(cl) == "object" && Boot.__isNativeObj(cl)) {
 | |
| 				if(o instanceof cl) {
 | |
| 					return true;
 | |
| 				}
 | |
| 			}
 | |
| 		} else {
 | |
| 			return false;
 | |
| 		}
 | |
| 		if(cl == $hxClasses["Class"] ? o.__name__ != null : false) {
 | |
| 			return true;
 | |
| 		}
 | |
| 		if(cl == $hxClasses["Enum"] ? o.__ename__ != null : false) {
 | |
| 			return true;
 | |
| 		}
 | |
| 		return o.__enum__ == cl;
 | |
| 	}
 | |
| }
 | |
| Boot.__cast = function(o,t) {
 | |
| 	if(Boot.__instanceof(o,t)) {
 | |
| 		return o;
 | |
| 	} else {
 | |
| 		throw new (js__$Boot_HaxeError().default)("Cannot cast " + (Std().default).string(o) + " to " + (Std().default).string(t));
 | |
| 	}
 | |
| }
 | |
| Boot.__nativeClassName = function(o) {
 | |
| 	var name = Boot.__toStr.call(o).slice(8,-1);
 | |
| 	if(name == "Object" || name == "Function" || name == "Math" || name == "JSON") {
 | |
| 		return null;
 | |
| 	}
 | |
| 	return name;
 | |
| }
 | |
| Boot.__isNativeObj = function(o) {
 | |
| 	return Boot.__nativeClassName(o) != null;
 | |
| }
 | |
| Boot.__resolveNativeClass = function(name) {
 | |
| 	return $global[name];
 | |
| }
 | |
| Boot.__toStr = ({ }).toString
 | |
| 
 | |
| // Export
 | |
| 
 | |
| exports.default = Boot; |