jsctags
Version:
jsctags generator
61 lines (43 loc) • 1.43 kB
JavaScript
// Follows the pattern CoffeeScript uses to define classes.
var __extends = function(child, parent) {
for (var key in parent) { child[key] = parent[key]; }
function ctor() { this.constructor = child; }
ctor.prototype = parent.prototype;
child.prototype = new ctor();
};
var Top = (function() {
function Top() {}
Top.prototype.topMethod = function() {return "hey";};
Top.topStatic = 20;
return Top;
})();
var SubOne = (function(_super) {
function SubOne(arg) { this.argOne = arg; }
__extends(SubOne, _super);
SubOne.prototype.methodOne = function() {return 11;};
return SubOne;
})(Top);
var SubTwo = (function(_super) {
function SubTwo(arg) { this.argTwo = arg; }
__extends(SubTwo, _super);
SubTwo.prototype.methodTwo = function() {return null;};
return SubTwo;
})(Top);
var SubEleven = (function(_super) {
function SubEleven(arg) { SubOne.call(this, arg); }
__extends(SubEleven, SubOne);
SubEleven.prototype.methodEleven = function() {return "blah";};
return SubEleven;
})(SubOne);
var top = new Top, one = new SubOne(true), two = new SubTwo(false), elf = new SubEleven(true);
one.topMethod; //: fn() -> string
one.methodOne; //: fn() -> number
one.argOne; //: bool
one.argTwo; //: ?
two.argTwo; //: bool
one.methodTwo; //: ?
one.methodEleven; //: ?
SubEleven.topStatic; //: number
elf.methodOne; //: fn() -> number
elf.methodEleven(); //: string
two.methodEleven; //: ?