Переглянути джерело

[js] support stack frame wrapping for haxe.CallStack

This allows using modules like source-map-support together with haxe.CallStack, e.g.:

static function __init__() {
    var sm = js.Lib.require("source-map-support");
    sm.install();
    haxe.CallStack.wrapCallSite = sm.wrapCallSite;
}
Dan Korostelev 10 роки тому
батько
коміт
8348491254
1 змінених файлів з 4 додано та 0 видалено
  1. 4 0
      std/haxe/CallStack.hx

+ 4 - 0
std/haxe/CallStack.hx

@@ -45,6 +45,7 @@ class CallStack {
 		(untyped Error).prepareStackTrace = function (error, callsites :Array<Dynamic>) {
 			var stack = [];
 			for (site in callsites) {
+				if (wrapCallSite != null) site = wrapCallSite(site);
 				var method = null;
 				var fullName :String = site.getFunctionName();
 				if (fullName != null) {
@@ -63,6 +64,9 @@ class CallStack {
 		(untyped Error).prepareStackTrace = oldValue;
 		return a;
 	}
+
+	// support for source-map-support module
+	public static var wrapCallSite:Dynamic->Dynamic;
 	#end
 
 	/**