createBoundESNamespace.js 432 B

123456789101112131415161718192021
  1. 'use strict';
  2. var bind = require('function-bind');
  3. var OwnPropertyKeys = require('../../helpers/OwnPropertyKeys');
  4. module.exports = function createBoundESNamespace(ES) {
  5. var keys = OwnPropertyKeys(ES);
  6. var result = {};
  7. for (var i = 0; i < keys.length; i++) {
  8. var key = keys[i];
  9. var prop = ES[key];
  10. if (typeof prop === 'function') {
  11. prop = bind.call(prop, undefined);
  12. }
  13. result[key] = prop;
  14. }
  15. return result;
  16. };