https://github.com/stacktracejs/stackframe
JS Object representation of a stack frame.
https://github.com/stacktracejs/stackframe
stacktracejs
Last synced: 3 months ago
JSON representation
JS Object representation of a stack frame.
- Host: GitHub
- URL: https://github.com/stacktracejs/stackframe
- Owner: stacktracejs
- License: mit
- Created: 2014-09-01T16:03:51.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2023-01-27T10:27:11.000Z (over 2 years ago)
- Last Synced: 2025-04-03T20:37:56.268Z (3 months ago)
- Topics: stacktracejs
- Language: JavaScript
- Homepage: https://www.stacktracejs.com/#!/docs/stackframe
- Size: 7.38 MB
- Stars: 80
- Watchers: 7
- Forks: 16
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
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/[email protected])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() // => 325stackFrame.columnNumber // => 3288
stackFrame.setColumnNumber(20)
stackFrame.getColumnNumber() // => 20stackFrame.source // => 'ORIGINAL_STACK_LINE'
stackFrame.setSource('NEW_SOURCE')
stackFrame.getSource() // => 'NEW_SOURCE'stackFrame.isEval // => true
stackFrame.setIsEval(false)
stackFrame.getIsEval() // => falsestackFrame.isNative // => false
stackFrame.setIsNative(true)
stackFrame.getIsNative() // => truestackFrame.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
```