'use strict'; 
 | 
/* eslint-disable es/no-symbol -- required for testing */ 
 | 
var V8_VERSION = require('../internals/environment-v8-version'); 
 | 
var fails = require('../internals/fails'); 
 | 
var globalThis = require('../internals/global-this'); 
 | 
  
 | 
var $String = globalThis.String; 
 | 
  
 | 
// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing 
 | 
module.exports = !!Object.getOwnPropertySymbols && !fails(function () { 
 | 
  var symbol = Symbol('symbol detection'); 
 | 
  // Chrome 38 Symbol has incorrect toString conversion 
 | 
  // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances 
 | 
  // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will, 
 | 
  // of course, fail. 
 | 
  return !$String(symbol) || !(Object(symbol) instanceof Symbol) || 
 | 
    // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances 
 | 
    !Symbol.sham && V8_VERSION && V8_VERSION < 41; 
 | 
}); 
 |