選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

index.js 817B

123456789101112131415161718192021222324252627282930313233
  1. 'use strict';
  2. var GetIntrinsic = require('get-intrinsic');
  3. var $defineProperty = GetIntrinsic('%Object.defineProperty%', true);
  4. var hasPropertyDescriptors = function hasPropertyDescriptors() {
  5. if ($defineProperty) {
  6. try {
  7. $defineProperty({}, 'a', { value: 1 });
  8. return true;
  9. } catch (e) {
  10. // IE 8 has a broken defineProperty
  11. return false;
  12. }
  13. }
  14. return false;
  15. };
  16. hasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {
  17. // node v0.6 has a bug where array lengths can be Set but not Defined
  18. if (!hasPropertyDescriptors()) {
  19. return null;
  20. }
  21. try {
  22. return $defineProperty([], 'length', { value: 1 }).length !== 1;
  23. } catch (e) {
  24. // In Firefox 4-22, defining length on an array throws an exception.
  25. return true;
  26. }
  27. };
  28. module.exports = hasPropertyDescriptors;