2429,8 → 2429,34 |
|
var result = ''; |
|
if (typeof Error == "function") |
var caller = |
(jsx.object._hasOwnProperty(jsx_getStackTrace, "caller") && jsx_getStackTrace.caller) |
|| (jsx.object._hasOwnProperty(arguments, "caller") && arguments.caller); |
|
if (caller) |
{ |
/* JScript and older JavaScript */ |
while (caller != null) |
{ |
result += '> ' + (jsx.object.getFunctionName(caller, true) || "anonymous") |
+ '\n'; |
if (caller.caller == caller) |
{ |
result += '*'; |
break; |
} |
|
caller = caller.caller; |
} |
} |
else |
{ |
/* other */ |
if (typeof Error != "function") |
{ |
return result; |
} |
|
var stack = parseErrorStack(new Error()); |
result = stack.slice(2).join("\n"); |
// for (var i = 1; i < stack.length; i++) |
2439,35 → 2465,6 |
// } |
} |
|
/* |
* Avoid strict violation; implementations with Error should also have |
* the “stack” property |
*/ |
/* FIXME: Use local strict mode declaration only */ |
if (!stack) |
{ |
/* JScript and older JavaScript */ |
var caller = |
(jsx.object._hasOwnProperty(jsx_getStackTrace, "caller") && jsx_getStackTrace.caller) |
|| (jsx.object._hasOwnProperty(arguments, "caller") && arguments.caller); |
|
if (caller) |
{ |
while (caller != null) |
{ |
result += '> ' + (jsx.object.getFunctionName(caller, true) || "anonymous") |
+ '\n'; |
if (caller.caller == caller) |
{ |
result += '*'; |
break; |
} |
|
caller = caller.caller; |
} |
} |
} |
|
return result; |
}; |
|