Sha256: 6b2cc0e1d379bded0238167030f9fb15b5cb2bc13cdfe33b3ada32277d1f371f
Contents?: true
Size: 916 Bytes
Versions: 41
Compression:
Stored size: 916 Bytes
Contents
'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; };
Version data entries
41 entries across 41 versions & 2 rubygems