1 var metadata = require('./_metadata')
2 , anObject = require('./_an-object')
3 , toMetaKey = metadata.key
4 , getOrCreateMetadataMap = metadata.map
5 , store = metadata.store;
7 metadata.exp({deleteMetadata: function deleteMetadata(metadataKey, target /*, targetKey */){
8 var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2])
9 , metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);
10 if(metadataMap === undefined || !metadataMap['delete'](metadataKey))return false;
11 if(metadataMap.size)return true;
12 var targetMetadata = store.get(target);
13 targetMetadata['delete'](targetKey);
14 return !!targetMetadata.size || store['delete'](target);