aboutsummaryrefslogtreecommitdiff
path: root/node_modules/babel-register/node_modules/core-js/modules/es7.reflect.delete-metadata.js
blob: 590ed53ce349a429f38ff48531b06b7e67ea5a3c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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);
} });