You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
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 propertiesvar 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 // => 1stackFrame.setLineNumber(325)stackFrame.getLineNumber() // => 325
stackFrame.columnNumber // => 3288stackFrame.setColumnNumber(20)stackFrame.getColumnNumber() // => 20
stackFrame.source // => 'ORIGINAL_STACK_LINE'stackFrame.setSource('NEW_SOURCE')stackFrame.getSource() // => 'NEW_SOURCE'
stackFrame.isEval // => truestackFrame.setIsEval(false)stackFrame.getIsEval() // => false
stackFrame.isNative // => falsestackFrame.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 stackframebower install stackframehttps://raw.githubusercontent.com/stacktracejs/stackframe/master/dist/stackframe.min.js```
|