80 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 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
 | |
| ```
 |