UNPKG

@aws/pdk

Version:

All documentation is located at: https://aws.github.io/aws-pdk

36 lines (33 loc) 916 B
'use strict'; var supportsDescriptors = require('define-properties').supportsDescriptors; var functionsHaveNames = require('functions-have-names')(); var getPolyfill = require('./polyfill'); var defineProperty = Object.defineProperty; var TypeErr = TypeError; module.exports = function shimName() { var polyfill = getPolyfill(); if (functionsHaveNames) { return polyfill; } if (!supportsDescriptors) { throw new TypeErr('Shimming Function.prototype.name support requires ES5 property descriptor support.'); } var functionProto = Function.prototype; defineProperty(functionProto, 'name', { configurable: true, enumerable: false, get: function () { var name = polyfill.call(this); if (this !== functionProto) { defineProperty(this, 'name', { configurable: true, enumerable: false, value: name, writable: false }); } return name; } }); return polyfill; };