function createClass(base){ var self = {}; function Class() self.initialize.apply(self, arguments); for(var key in base) if(base.hasOwnProperty(key)){ extend(base, key, self, self); if(key.charAt(0) != "_"){ extend(base, key, Class.prototype, self); } } return Class; function extend(base, name, target, self){ var setter = base.__lookupSetter__(name); var getter = base.__lookupGetter__(name); var t