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

Version Path
immosquare-cleaner-0.1.51 node_modules/function.prototype.name/shim.js
immosquare-cleaner-0.1.50 node_modules/function.prototype.name/shim.js
immosquare-cleaner-0.1.49 node_modules/function.prototype.name/shim.js
immosquare-cleaner-0.1.48 node_modules/function.prototype.name/shim.js
immosquare-cleaner-0.1.47 node_modules/function.prototype.name/shim.js
immosquare-cleaner-0.1.46 node_modules/function.prototype.name/shim.js
immosquare-cleaner-0.1.45 node_modules/function.prototype.name/shim.js
immosquare-cleaner-0.1.44 node_modules/function.prototype.name/shim.js
immosquare-cleaner-0.1.43 node_modules/function.prototype.name/shim.js
immosquare-cleaner-0.1.42 node_modules/function.prototype.name/shim.js
immosquare-cleaner-0.1.41 node_modules/function.prototype.name/shim.js
immosquare-cleaner-0.1.40 node_modules/function.prototype.name/shim.js
immosquare-cleaner-0.1.39 node_modules/function.prototype.name/shim.js
immosquare-cleaner-0.1.38 node_modules/function.prototype.name/shim.js
immosquare-cleaner-0.1.32 node_modules/function.prototype.name/shim.js
immosquare-cleaner-0.1.31 node_modules/function.prototype.name/shim.js
immosquare-cleaner-0.1.30 node_modules/function.prototype.name/shim.js
immosquare-cleaner-0.1.29 node_modules/function.prototype.name/shim.js
immosquare-cleaner-0.1.28 node_modules/function.prototype.name/shim.js
immosquare-cleaner-0.1.27 node_modules/function.prototype.name/shim.js