Skip to content
/ callsite Public

node.js access to v8's "raw" CallSites -- useful for custom traces, c-style assertions, getting the line number in execution etc

License

Notifications You must be signed in to change notification settings

tj/callsite

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

callsite

Access to v8's "raw" CallSites.

Installation

$ npm install callsite

Example

var stack = require('callsite');

foo();

function foo() {
  bar();
}

function bar() {
  baz();
}

function baz() {
  console.log();
  stack().forEach(function(site){
    console.log('  \033[36m%s\033[90m in %s:%d\033[0m'
      , site.getFunctionName() || 'anonymous'
      , site.getFileName()
      , site.getLineNumber());
  });
  console.log();
}

Why?

Because you can do weird, stupid, clever, wacky things such as:

License

MIT

About

node.js access to v8's "raw" CallSites -- useful for custom traces, c-style assertions, getting the line number in execution etc

Resources

License

Stars

Watchers

Forks

Packages

No packages published