Skip to content

Commit 1352264

Browse files
authored
Merge pull request #23 from niftylettuce/master
Rewrite toString to match Node internals
2 parents 0d7a328 + c772aa8 commit 1352264

File tree

4 files changed

+22
-12
lines changed

4 files changed

+22
-12
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,4 @@ coverage
1010

1111
.idea
1212
.coveralls.yml
13+
dist

.travis.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
language: node_js
22
sudo: required
3-
dist: trusty
4-
node_js: stable
3+
dist: xenial
4+
node_js: 8
55
addons:
66
sauce_connect: true
77
firefox: latest
@@ -10,10 +10,11 @@ addons:
1010
- google-chrome
1111
packages:
1212
- google-chrome-stable
13+
services:
14+
- xvfb
1315
before_install:
1416
- export CHROME_BIN=chromium-browser
1517
- export DISPLAY=:99.0
16-
- sh -e /etc/init.d/xvfb start
1718
before_script:
1819
- npm install
1920
script:

spec/stackframe-spec.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -158,8 +158,8 @@ describe('StackFrame', function() {
158158
});
159159

160160
describe('#toString', function() {
161-
it('represents empty StackFrame as "{anonymous}()"', function() {
162-
expect(new StackFrame().toString()).toEqual('{anonymous}()');
161+
it('represents empty StackFrame as "::"', function() {
162+
expect(new StackFrame().toString()).toEqual('::');
163163
});
164164
it('represents complete StackFrame same as old stacktrace.js', function() {
165165
var unit = new StackFrame({
@@ -172,7 +172,7 @@ describe('StackFrame', function() {
172172
isNative: false,
173173
source: 'SOURCE'
174174
});
175-
expect(unit.toString()).toEqual('fun(arg1,arg2)@http://site.com/path.js:1:4567');
175+
expect(unit.toString()).toEqual('fun (http://site.com/path.js:1:4567)');
176176
});
177177
});
178178
});

stackframe.js

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -68,12 +68,20 @@
6868
},
6969

7070
toString: function() {
71-
var functionName = this.getFunctionName() || '{anonymous}';
72-
var args = '(' + (this.getArgs() || []).join(',') + ')';
73-
var fileName = this.getFileName() ? ('@' + this.getFileName()) : '';
74-
var lineNumber = _isNumber(this.getLineNumber()) ? (':' + this.getLineNumber()) : '';
75-
var columnNumber = _isNumber(this.getColumnNumber()) ? (':' + this.getColumnNumber()) : '';
76-
return functionName + args + fileName + lineNumber + columnNumber;
71+
var fileName = this.getFileName() || '';
72+
var lineNumber = this.getLineNumber() || '';
73+
var columnNumber = this.getColumnNumber() || '';
74+
var functionName = this.getFunctionName() || '';
75+
if (this.getIsEval()) {
76+
if (fileName) {
77+
return '[eval] (' + fileName + ':' + lineNumber + ':' + columnNumber + ')';
78+
}
79+
return '[eval]:' + lineNumber + ':' + columnNumber;
80+
}
81+
if (functionName) {
82+
return functionName + ' (' + fileName + ':' + lineNumber + ':' + columnNumber + ')';
83+
}
84+
return fileName + ':' + lineNumber + ':' + columnNumber;
7785
}
7886
};
7987

0 commit comments

Comments
 (0)