have you ever wondered what people call your library?
It's a bit of a silly thought – to what variable name do folks assign your library? But who knows, it might speak volumes about how they expect your code to work. Hopefully it's something nice!
In any case, we can find that out. Further, we can figure out how they use your code – if they pass it to other libraries, if they give it callbacks, what types of arguments it receives, and how they use the results of calling your functions.
This talk will describe a method of static analysis that cribs concepts from V8 optimizing compiler design, stack machines, mock libraries, and control flow graph generation libraries. In exploring this method, we'll see basics of how JS runtimes operate, and touch on how these concepts can help us better understand upcoming features in ES2015 and beyond.
The audience of this talk will learn about and see examples of:
What a control flow graph is.
What a stack machine is.
The difference between objects, names, descriptors, and values.
Problems in simple static analysis.
What the term "reference semantics" means, and how it applies to ES6 modules.
Speaker Bio
I'm Chris Dickinson. I am a member of the Node core team, and sit on the io.js
technical committee. I've been writing Node programs since 2009,
and have apologized for at least 95% of them at some point. I will talk at
length about old video games, parsers, color use, JS spec minutea, comics,
etymology, or pictures of cats. I am a practiced beginner at all of these
things, except for old video games.
signal from static
have you ever wondered what people call your library?
It's a bit of a silly thought – to what variable name do folks assign your library? But who knows, it might speak volumes about how they expect your code to work. Hopefully it's something nice!
In any case, we can find that out. Further, we can figure out how they use your code – if they pass it to other libraries, if they give it callbacks, what types of arguments it receives, and how they use the results of calling your functions.
This talk will describe a method of static analysis that cribs concepts from V8 optimizing compiler design, stack machines, mock libraries, and control flow graph generation libraries. In exploring this method, we'll see basics of how JS runtimes operate, and touch on how these concepts can help us better understand upcoming features in ES2015 and beyond.
The audience of this talk will learn about and see examples of:
Speaker Bio
I'm Chris Dickinson. I am a member of the Node core team, and sit on the io.js technical committee. I've been writing Node programs since 2009, and have apologized for at least 95% of them at some point. I will talk at length about old video games, parsers, color use, JS spec minutea, comics, etymology, or pictures of cats. I am a practiced beginner at all of these things, except for old video games.