Strobe: A Type-Checker for JavaScript

Strobe is a type-checker for JavaScript that employs several novel techniques to type-check JavaScript programs.

Type Checking + Flow Analysis

Strobe integrates type-checking and flow analysis to type-check programs that use control and state to reason about types:

if (typeof stop === "undefined") {
  stop = arr.length;
}

First-Class Field Names

Strobe can type-check programs that use dynamically constructed strings to access fields on objects:

o[x + "_mysuffix_"] = 42;

Applications

We've used Strobe's types to verify some significant pieces of code, including the ADsafe Web sandbox.

Code

Strobe is open-source and available on Github.