12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- stackframe
- ==========
- ## JS Object representation of a stack frame
- [](https://github.com/stacktracejs/stackframe/actions?query=workflow%3AContinuous+Integration+branch%3Amaster)
- [](https://coveralls.io/r/stacktracejs/stackframe?branch=master)
- [](https://opensource.org/licenses/MIT)
- [](https://github.com/stacktracejs/stackframe/releases)
- [](https://github.com/stacktracejs/stackframe/releases)
- [](https://github.com/stacktracejs/stackframe/releases)
- [](http://todogroup.org/opencodeofconduct/#stacktrace.js/me@eriwen.com)
- Underlies functionality of other modules within [stacktrace.js](https://www.stacktracejs.com).
- Written to closely resemble StackFrame representations in [Gecko](http://mxr.mozilla.org/mozilla-central/source/xpcom/base/nsIException.idl#14) and [V8](https://github.com/v8/v8/wiki/Stack%20Trace%20API)
- ## Usage
- ```js
- // Create StackFrame and set properties
- var stackFrame = new StackFrame({
- functionName: 'funName',
- args: ['args'],
- fileName: 'http://localhost:3000/file.js',
- lineNumber: 1,
- columnNumber: 3288,
- isEval: true,
- isNative: false,
- source: 'ORIGINAL_STACK_LINE'
- evalOrigin: new StackFrame({functionName: 'withinEval', lineNumber: 2, columnNumber: 43})
- });
- stackFrame.functionName // => "funName"
- stackFrame.setFunctionName('newName')
- stackFrame.getFunctionName() // => "newName"
- stackFrame.args // => ["args"]
- stackFrame.setArgs([])
- stackFrame.getArgs() // => []
- stackFrame.fileName // => 'http://localhost:3000/file.min.js'
- stackFrame.setFileName('http://localhost:3000/file.js')
- stackFrame.getFileName() // => 'http://localhost:3000/file.js'
- stackFrame.lineNumber // => 1
- stackFrame.setLineNumber(325)
- stackFrame.getLineNumber() // => 325
- stackFrame.columnNumber // => 3288
- stackFrame.setColumnNumber(20)
- stackFrame.getColumnNumber() // => 20
- stackFrame.source // => 'ORIGINAL_STACK_LINE'
- stackFrame.setSource('NEW_SOURCE')
- stackFrame.getSource() // => 'NEW_SOURCE'
- stackFrame.isEval // => true
- stackFrame.setIsEval(false)
- stackFrame.getIsEval() // => false
- stackFrame.isNative // => false
- stackFrame.setIsNative(true)
- stackFrame.getIsNative() // => true
- stackFrame.evalOrigin // => StackFrame({functionName: 'withinEval', lineNumber: ...})
- stackFrame.setEvalOrigin({functionName: 'evalFn', fileName: 'anonymous'})
- stackFrame.getEvalOrigin().getFunctionName() // => 'evalFn'
- stackFrame.toString() // => 'funName(args)@http://localhost:3000/file.js:325:20'
- ```
- ## Browser Support
- [](https://saucelabs.com/u/stacktracejs)
- ## Installation
- ```
- npm install stackframe
- bower install stackframe
- https://raw.githubusercontent.com/stacktracejs/stackframe/master/dist/stackframe.min.js
- ```
|