UNPKG

proteus

Version:

A declarative way of creating objects, properties, and classes in ES5 JavaScript

39 lines (31 loc) 817 B
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) { } };