text: const PRIVATE_PROPERTIES = new WeakMap();
  export const privateStore = (obj) => {
  	if(PRIVATE_PROPERTIES.has(obj))
  		return PRIVATE_PROPERTIES.get(obj);
  	
  	const data = {};
  	PRIVATE_PROPERTIES.set(obj, data);
  	return data;
  };
  
  export const privateProperty = function(obj, name, value) {
  	const data = privateStore(obj);
  	if(arguments.length === 1)
  		return data;
  	else if(arguments.length === 2)
  		return data[name];
  	else if(arguments.length === 3)
  		data[name] = value;
  	else
  		throw new Error("Not allowed size of arguments!");
  };
  
  export const privatePropertyAccessor = (varname) => {
  	return function(self, value){
  		if(arguments.length == 2)
  			privateProperty(self, varname, value);
  		else
  			return privateProperty(self, varname);
  	};
  };
  
  export default {privateProperty, privatePropertyAccessor, privateStore};