5
  • How can I find out where in the C++ source code of node.js the JavaScript object gets defined which I can access through process.binding('eval')? - I already found out that it's in /src/node_script.cc in this special case, but: How can I know where I can find that module just when I just take a look on the /src/ directory overview? I don't want to step through all the files in /src/ in order to look for a module.
  • Where can I find some deep going information about the internals of process.binding()s?

Thanks.

fridojet
  • 1,276
  • 3
  • 15
  • 29

1 Answers1

2

I was looking for the same myself today. I cannot guarantee that there isn't more to it, but this is what I discovered.

src/node_extensions.h contains a list of built-in modules, defined like:

ITEM(node_module_name)

where module_name is the name of the module (obviously)

You can find out which file defines that module by searching for which file has a line that starts with

NODE_MODULE(node_module_name, 

So, to find the file that defines the 'evals' module for process.bindings:

$ grep "NODE_MODULE(node_evals" src/*.cc
src/node_script.cc:NODE_MODULE(node_evals, node::InitEvals)
Mat
  • 6,694
  • 7
  • 35
  • 39