Tern Lint Demo function Person(name) { this.name = name; } function Employee(name, title) { this.constructor(name); this.title = title; } Employee.prototype = new Person(); Employee.prototype.constructor = Person; function Customer(name) { this.constructor(name); } Customer.prototype = new Person(); Customer.prototype.constructor = Person; function createSomebody(numb) { if (numb % 2 === 1) { return new Employee("me", "worker"); } else { return new Customer("notMe"); } } alert(createSomebody(2)); // cannot convert from Employee|Customer to string Demonstrates integration of Tern and CodeMirror. The following keys are bound: Ctrl-SpaceAutocomplete Ctrl-IFind type at cursor Alt-.Jump to definition (Alt-, to jump back) Ctrl-QRename variable Documentation is sparse for now. See the top of the script for a rough API overview.