riot-ts.js
function extend(d, element) {
    var map = Object.keys(element.prototype).reduce(function (descriptors, key) {
        descriptors[key] = Object.getOwnPropertyDescriptor(element.prototype, key);
        return descriptors;
    }, {});
    Object.defineProperties(d, map);
}
function extend(d, element) {
    var map = Object.keys(element.prototype).reduce(function (descriptors, key) {
        descriptors[key] = Object.getOwnPropertyDescriptor(element.prototype, key);
        return descriptors;
    }, {});
    Object.defineProperties(d, map);
}
function extend ( d , element ) { var map = Object . keys ( element . prototype ) . reduce ( function ( descriptors , key ) { descriptors [ key ] = Object . getOwnPropertyDescriptor ( element . prototype , key ) ; return descriptors ; } , { } ) ; Object . defineProperties ( d , map ) ; }
new extend, works with getters and setters
new extend works with getters and setters