| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252 | 'use strict';var $ = require('../internals/export');var global = require('../internals/global');var call = require('../internals/function-call');var uncurryThis = require('../internals/function-uncurry-this');var IS_PURE = require('../internals/is-pure');var DESCRIPTORS = require('../internals/descriptors');var NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');var fails = require('../internals/fails');var hasOwn = require('../internals/has-own-property');var isPrototypeOf = require('../internals/object-is-prototype-of');var anObject = require('../internals/an-object');var toIndexedObject = require('../internals/to-indexed-object');var toPropertyKey = require('../internals/to-property-key');var $toString = require('../internals/to-string');var createPropertyDescriptor = require('../internals/create-property-descriptor');var nativeObjectCreate = require('../internals/object-create');var objectKeys = require('../internals/object-keys');var getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');var getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');var getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');var getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');var definePropertyModule = require('../internals/object-define-property');var definePropertiesModule = require('../internals/object-define-properties');var propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');var defineBuiltIn = require('../internals/define-built-in');var shared = require('../internals/shared');var sharedKey = require('../internals/shared-key');var hiddenKeys = require('../internals/hidden-keys');var uid = require('../internals/uid');var wellKnownSymbol = require('../internals/well-known-symbol');var wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');var defineWellKnownSymbol = require('../internals/well-known-symbol-define');var defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');var setToStringTag = require('../internals/set-to-string-tag');var InternalStateModule = require('../internals/internal-state');var $forEach = require('../internals/array-iteration').forEach;var HIDDEN = sharedKey('hidden');var SYMBOL = 'Symbol';var PROTOTYPE = 'prototype';var setInternalState = InternalStateModule.set;var getInternalState = InternalStateModule.getterFor(SYMBOL);var ObjectPrototype = Object[PROTOTYPE];var $Symbol = global.Symbol;var SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];var TypeError = global.TypeError;var QObject = global.QObject;var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;var nativeDefineProperty = definePropertyModule.f;var nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;var nativePropertyIsEnumerable = propertyIsEnumerableModule.f;var push = uncurryThis([].push);var AllSymbols = shared('symbols');var ObjectPrototypeSymbols = shared('op-symbols');var WellKnownSymbolsStore = shared('wks');// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173var USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687var setSymbolDescriptor = DESCRIPTORS && fails(function () {  return nativeObjectCreate(nativeDefineProperty({}, 'a', {    get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }  })).a != 7;}) ? function (O, P, Attributes) {  var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);  if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];  nativeDefineProperty(O, P, Attributes);  if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {    nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);  }} : nativeDefineProperty;var wrap = function (tag, description) {  var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype);  setInternalState(symbol, {    type: SYMBOL,    tag: tag,    description: description  });  if (!DESCRIPTORS) symbol.description = description;  return symbol;};var $defineProperty = function defineProperty(O, P, Attributes) {  if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);  anObject(O);  var key = toPropertyKey(P);  anObject(Attributes);  if (hasOwn(AllSymbols, key)) {    if (!Attributes.enumerable) {      if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));      O[HIDDEN][key] = true;    } else {      if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;      Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });    } return setSymbolDescriptor(O, key, Attributes);  } return nativeDefineProperty(O, key, Attributes);};var $defineProperties = function defineProperties(O, Properties) {  anObject(O);  var properties = toIndexedObject(Properties);  var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));  $forEach(keys, function (key) {    if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]);  });  return O;};var $create = function create(O, Properties) {  return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);};var $propertyIsEnumerable = function propertyIsEnumerable(V) {  var P = toPropertyKey(V);  var enumerable = call(nativePropertyIsEnumerable, this, P);  if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false;  return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P]    ? enumerable : true;};var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {  var it = toIndexedObject(O);  var key = toPropertyKey(P);  if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return;  var descriptor = nativeGetOwnPropertyDescriptor(it, key);  if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) {    descriptor.enumerable = true;  }  return descriptor;};var $getOwnPropertyNames = function getOwnPropertyNames(O) {  var names = nativeGetOwnPropertyNames(toIndexedObject(O));  var result = [];  $forEach(names, function (key) {    if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key);  });  return result;};var $getOwnPropertySymbols = function (O) {  var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;  var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));  var result = [];  $forEach(names, function (key) {    if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) {      push(result, AllSymbols[key]);    }  });  return result;};// `Symbol` constructor// https://tc39.es/ecma262/#sec-symbol-constructorif (!NATIVE_SYMBOL) {  $Symbol = function Symbol() {    if (isPrototypeOf(SymbolPrototype, this)) throw TypeError('Symbol is not a constructor');    var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);    var tag = uid(description);    var setter = function (value) {      if (this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value);      if (hasOwn(this, HIDDEN) && hasOwn(this[HIDDEN], tag)) this[HIDDEN][tag] = false;      setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));    };    if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });    return wrap(tag, description);  };  SymbolPrototype = $Symbol[PROTOTYPE];  defineBuiltIn(SymbolPrototype, 'toString', function toString() {    return getInternalState(this).tag;  });  defineBuiltIn($Symbol, 'withoutSetter', function (description) {    return wrap(uid(description), description);  });  propertyIsEnumerableModule.f = $propertyIsEnumerable;  definePropertyModule.f = $defineProperty;  definePropertiesModule.f = $defineProperties;  getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;  getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;  getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;  wrappedWellKnownSymbolModule.f = function (name) {    return wrap(wellKnownSymbol(name), name);  };  if (DESCRIPTORS) {    // https://github.com/tc39/proposal-Symbol-description    nativeDefineProperty(SymbolPrototype, 'description', {      configurable: true,      get: function description() {        return getInternalState(this).description;      }    });    if (!IS_PURE) {      defineBuiltIn(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });    }  }}$({ global: true, constructor: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {  Symbol: $Symbol});$forEach(objectKeys(WellKnownSymbolsStore), function (name) {  defineWellKnownSymbol(name);});$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {  useSetter: function () { USE_SETTER = true; },  useSimple: function () { USE_SETTER = false; }});$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {  // `Object.create` method  // https://tc39.es/ecma262/#sec-object.create  create: $create,  // `Object.defineProperty` method  // https://tc39.es/ecma262/#sec-object.defineproperty  defineProperty: $defineProperty,  // `Object.defineProperties` method  // https://tc39.es/ecma262/#sec-object.defineproperties  defineProperties: $defineProperties,  // `Object.getOwnPropertyDescriptor` method  // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors  getOwnPropertyDescriptor: $getOwnPropertyDescriptor});$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {  // `Object.getOwnPropertyNames` method  // https://tc39.es/ecma262/#sec-object.getownpropertynames  getOwnPropertyNames: $getOwnPropertyNames});// `Symbol.prototype[@@toPrimitive]` method// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitivedefineSymbolToPrimitive();// `Symbol.prototype[@@toStringTag]` property// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtagsetToStringTag($Symbol, SYMBOL);hiddenKeys[HIDDEN] = true;
 |