Skip to content
Snippets Groups Projects
index.js 588 B
Newer Older
  • Learn to ignore specific revisions
  • Jay's avatar
    Jay committed
    'use strict';
    
    var $defineProperty = require('es-define-property');
    
    var hasPropertyDescriptors = function hasPropertyDescriptors() {
    	return !!$defineProperty;
    };
    
    hasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {
    	// node v0.6 has a bug where array lengths can be Set but not Defined
    	if (!$defineProperty) {
    		return null;
    	}
    	try {
    		return $defineProperty([], 'length', { value: 1 }).length !== 1;
    	} catch (e) {
    		// In Firefox 4-22, defining length on an array throws an exception.
    		return true;
    	}
    };
    
    module.exports = hasPropertyDescriptors;