deepfreeze
recursively Object.freeze() on objects and functions with properties
usage
var deepfreeze = /*******************************************************/ Personprototype{console} Personprototype{console} { return __proto__: Personprototype name: name } Bartererprototype__proto__ = Personprototype Bartererprototype{thisinventory=} { var o = o__proto__ = Bartererprototype oinventory = inventory return o } /*******************************************************/ var tom = 'tom' sugar:1salt:2 tomname = 'bill' console // => 'tom' tominventory = 'm3h' console // [{sugar:1},{salt:2}] tominventory // throws tom__proto__{ return 7} tomclear // => 'clear' tom__proto__{ return 6 } tom // => 'say' tom__proto__{ return 5 } tom // => 'bye'