Prechádzať zdrojové kódy

allow custom error handler.

Nicolas Cannasse 19 rokov pred
rodič
commit
dfd8d33004
2 zmenil súbory, kde vykonal 10 pridanie a 1 odobranie
  1. 5 1
      std/flash/Boot.hx
  2. 5 0
      std/flash/Lib.hx

+ 5 - 1
std/flash/Boot.hx

@@ -178,9 +178,13 @@ class Boot {
 		var a : Array<String> = untyped __eval__("$s");
 		for( i in 0...a.length-1 )
 			s += "\nCalled from "+a[i];
+		var old = a.copy();
 		a.splice(0,a.length);
 		#end
-		__trace(__string_rec(v,"")+s,cast { fileName : "(uncaught exception)" });
+		if( untyped Lib.onerror != null )
+			untyped Lib.onerror(__string_rec(v,""),#if debug old #else true [] #end);
+		else
+			__trace(__string_rec(v,"")+s,cast { fileName : "(uncaught exception)" });
 	}
 
 	private static function __clear_trace() {

+ 5 - 0
std/flash/Lib.hx

@@ -29,6 +29,7 @@ class Lib {
 	public static var _global : Dynamic;
 	public static var _root : MovieClip;
 	public static var current : MovieClip;
+	static var onerror : String -> Array<String> -> Void;
 
 	public static function trace( str : String ) {
 		untyped __trace__(str);
@@ -70,6 +71,10 @@ class Lib {
 	public static function registerClass( name : String, cl : {} ) {
 		untyped _global["Object"]["registerClass"](name,cl);
 	}
+	
+	public static function setErrorHandler(f) {
+		onerror = f;
+	}
 
 }