diff options
Diffstat (limited to 'node_modules/core-js/modules/es7.reflect.get-metadata-keys.js')
-rw-r--r-- | node_modules/core-js/modules/es7.reflect.get-metadata-keys.js | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/node_modules/core-js/modules/es7.reflect.get-metadata-keys.js b/node_modules/core-js/modules/es7.reflect.get-metadata-keys.js new file mode 100644 index 000000000..58c4dcc23 --- /dev/null +++ b/node_modules/core-js/modules/es7.reflect.get-metadata-keys.js @@ -0,0 +1,19 @@ +var Set = require('./es6.set') + , from = require('./_array-from-iterable') + , metadata = require('./_metadata') + , anObject = require('./_an-object') + , getPrototypeOf = require('./_object-gpo') + , ordinaryOwnMetadataKeys = metadata.keys + , toMetaKey = metadata.key; + +var ordinaryMetadataKeys = function(O, P){ + var oKeys = ordinaryOwnMetadataKeys(O, P) + , parent = getPrototypeOf(O); + if(parent === null)return oKeys; + var pKeys = ordinaryMetadataKeys(parent, P); + return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys; +}; + +metadata.exp({getMetadataKeys: function getMetadataKeys(target /*, targetKey */){ + return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1])); +}});
\ No newline at end of file |