lib/Struct.js
function(keyname) {
  const _ = Struct.PriProp(keyname);
  if (_.__proto__) {
    _.__proto__ = Struct.prototype;
  }
  else {
    Object.keys(Struct.prototype).forEach(function(p) {
      Object.defineProperty(_, p, {
        value    : Struct.prototype[p],
        writable : false
      });
    }, this);
  }
  var classFunction;
  Object.defineProperties(_, {
    requires : {
      value: {},
      writable: false
    },

    defaults : {
      value: {},
      writable: false
    },

    defaultFuncs : {
      value: {},
      writable: false
    },

    views: {
      value: {},
      writable: false
    },

    parentProps: {
      value: [],
      writable: false
    },

    enumerableDescs: {
      value: {},
      writable: false
    },

    classFunction : {
      get: function() {
        return classFunction;
      },
      set: function(v) {
        if (classFunction === undefined) {
          classFunction = v;
        }
        else if (classFunction !== v) {
          throw new Error('cannot change classFunction.');
        }
      }
    },

    Modifiers : {
      value    : Struct.Modifiers,
      writable : false
    }
  });
  return _;
}
function(keyname) {
  const _ = Struct.PriProp(keyname);
  if (_.__proto__) {
    _.__proto__ = Struct.prototype;
  }
  else {
    Object.keys(Struct.prototype).forEach(function(p) {
      Object.defineProperty(_, p, {
        value    : Struct.prototype[p],
        writable : false
      });
    }, this);
  }
  var classFunction;
  Object.defineProperties(_, {
    requires : {
      value: {},
      writable: false
    },

    defaults : {
      value: {},
      writable: false
    },

    defaultFuncs : {
      value: {},
      writable: false
    },

    views: {
      value: {},
      writable: false
    },

    parentProps: {
      value: [],
      writable: false
    },

    enumerableDescs: {
      value: {},
      writable: false
    },

    classFunction : {
      get: function() {
        return classFunction;
      },
      set: function(v) {
        if (classFunction === undefined) {
          classFunction = v;
        }
        else if (classFunction !== v) {
          throw new Error('cannot change classFunction.');
        }
      }
    },

    Modifiers : {
      value    : Struct.Modifiers,
      writable : false
    }
  });
  return _;
}
function ( keyname ) { const _ = Struct . PriProp ( keyname ) ; if ( _ . __proto__ ) { _ . __proto__ = Struct . prototype ; } else { Object . keys ( Struct . prototype ) . forEach ( function ( p ) { Object . defineProperty ( _ , p , { value : Struct . prototype [ p ] , writable : false } ) ; } , this ) ; } var classFunction ; Object . defineProperties ( _ , { requires : { value : { } , writable : false } , defaults : { value : { } , writable : false } , defaultFuncs : { value : { } , writable : false } , views : { value : { } , writable : false } , parentProps : { value : [ ] , writable : false } , enumerableDescs : { value : { } , writable : false } , classFunction : { get : function ( ) { return classFunction ; } , set : function ( v ) { if ( classFunction === undefined ) { classFunction = v ; } else if ( classFunction !== v ) { throw new Error ( 'cannot change classFunction.' ) ; } } } , Modifiers : { value : Struct . Modifiers , writable : false } } ) ; return _ ; }
Struct.js v0.0.1

Copyright 2011, SHIN Suzuki
Struct . js v0 . 0 . 1