1 Error.prototype.popStackFrame = function Error$popStackFrame() {
3 if (arguments.length !== 0) throw Error.parameterCount();
4 if (typeof(this.stack) === "undefined" || this.stack === null ||
5 typeof(this.fileName) === "undefined" || this.fileName === null ||
6 typeof(this.lineNumber) === "undefined" || this.lineNumber === null) {
7 return;
8 }
9 var stackFrames = this.stack.split("\n");
10 var currentFrame = stackFrames[0];
11 var pattern = this.fileName + ":" + this.lineNumber;
12 while(typeof(currentFrame) !== "undefined" &&
13 currentFrame !== null &&
14 currentFrame.indexOf(pattern) === -1) {
15 stackFrames.shift();
16 currentFrame = stackFrames[0];
17 }
18 var nextFrame = stackFrames[1];
19 if (typeof(nextFrame) === "undefined" || nextFrame === null) {
20 return;
21 }
22 var nextFrameParts = nextFrame.match(/@(.*):(\d+)$/);
23 if (typeof(nextFrameParts) === "undefined" || nextFrameParts === null) {
24 return;
25 }
26 this.fileName = nextFrameParts[1];
27 this.lineNumber = parseInt(nextFrameParts[2]);
28 stackFrames.shift();
29 this.stack = stackFrames.join("\n");
30 }