proteus
Version:
A declarative way of creating objects, properties, and classes in ES5 JavaScript
39 lines (31 loc) • 817 B
JavaScript
var Props = require("proteus/properties"),
property = Props.property
;
module.exports = {
create: function (proto, spec) {
var getProto = Object.getPrototypeOf,
obj,
keys, i, key, val
;
obj = Object.create(proto || Object.prototype, {
__super__: property(proto, "hidden")
});
if (arguments.length <= 1) {
return obj;
}
// else
keys = Object.keys(spec);
i = keys.length;
while (i--) {
key = keys[i];
val = spec[key];
if (!Props.isPropertySpec(val)) {
spec[key] = property(val);
}
}
Object.defineProperties(obj, spec);
return obj;
},
make: function (proto) {
}
};