16 lines
		
	
	
		
			704 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			16 lines
		
	
	
		
			704 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
var metadata = require('./_metadata');
 | 
						|
var anObject = require('./_an-object');
 | 
						|
var toMetaKey = metadata.key;
 | 
						|
var getOrCreateMetadataMap = metadata.map;
 | 
						|
var store = metadata.store;
 | 
						|
 | 
						|
metadata.exp({ deleteMetadata: function deleteMetadata(metadataKey, target /* , targetKey */) {
 | 
						|
  var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2]);
 | 
						|
  var metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);
 | 
						|
  if (metadataMap === undefined || !metadataMap['delete'](metadataKey)) return false;
 | 
						|
  if (metadataMap.size) return true;
 | 
						|
  var targetMetadata = store.get(target);
 | 
						|
  targetMetadata['delete'](targetKey);
 | 
						|
  return !!targetMetadata.size || store['delete'](target);
 | 
						|
} });
 |